36 lines
729 B
JavaScript
36 lines
729 B
JavaScript
import mongoose from "mongoose";
|
|
import { nanoid } from "nanoid";
|
|
|
|
const announcementSchema = new mongoose.Schema(
|
|
{
|
|
uniqueId: {
|
|
type: String,
|
|
unique: true,
|
|
},
|
|
sentTo: {
|
|
type: [String],
|
|
enum: ["PDs", "RDs", "SCs", "TMs"],
|
|
required: true,
|
|
},
|
|
message: {
|
|
type: String,
|
|
required: true,
|
|
maxlength: 250,
|
|
},
|
|
},
|
|
{ timestamps: true }
|
|
);
|
|
|
|
// Pre-save middleware to dynamically generate a uniqueId before saving
|
|
announcementSchema.pre("save", function (next) {
|
|
if (!this.uniqueId) {
|
|
this.uniqueId = nanoid(6); // Generate a 6-character unique ID
|
|
}
|
|
next();
|
|
});
|
|
|
|
export const AnnouncemntModal = mongoose.model(
|
|
"Announcements",
|
|
announcementSchema
|
|
);
|