All files / src/models Notifications.js

100% Statements 2/2
100% Branches 0/0
100% Functions 0/0
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30        78x                                           78x      
import { Schema, model } from "mongoose";
import getTheDateAfterNDays from "../utilities/getTheDateAfterNDays.js";
import { ArrayOfObjectIds, RequiredString } from "../utilities/schemaTypesOptions.js";
 
const NotificationsSchema = new Schema(
    {
        type: {
            type: String,
            enum: ["success", "error", "info", "warning"],
            required: true
        },
        title: RequiredString({ maxLength: 100 }),
        diecription: {
            type: String,
            maxLength: 200
        },
        readBy: ArrayOfObjectIds(),
        expiresAt: {
            type: Date,
            default: getTheDateAfterNDays(15).toISOString(),
            expires: 1296000 // expires after 15 days
        }
    },
    { timestamps: true, versionKey: false }
)
 
const NotificationsModel = model("notifications", NotificationsSchema);
 
export default NotificationsModel;