next/models/privMsg.ts

56 lines
1.1 KiB
TypeScript
Raw Normal View History

import mongoose, {Schema, PopulatedDoc, Document, Model} from "mongoose";
import SequenceFactory from "mongoose-sequence";
import { hasMigrated } from "../lib/dbconfig";
import { IUser } from "./user";
const AutoIncrement = SequenceFactory(mongoose);
export interface IPrivMsg {
_id: number;
from: PopulatedDoc<IUser & Document>;
to: PopulatedDoc<IUser & Document>;
subject: string;
content: string;
sentAt: Date;
read: boolean;
deletedBy: {
sender: boolean;
recipient: boolean;
}
}
const PMSchema = new mongoose.Schema<IPrivMsg>({
_id: { type: Number},
from: {
type: Number,
ref: "User"
},
to: {
type: Number,
ref: "User"
},
subject: { type: String },
content: { type: String },
sentAt: {
type: Date,
default: new Date()
},
read: {
type: Boolean,
default: false
},
deletedBy: {
sender: {
type: Boolean,
default: false
},
recipient: {
type: Boolean,
default: false
}
}
})
hasMigrated && PMSchema.plugin(AutoIncrement, {id: "private_message"})
export const PrivMsg: Model<IPrivMsg> = /* mongoose.models.PrivMsg || */ mongoose.model("PrivMsg", PMSchema, "private_messages")