next/models/inbox.ts

38 lines
716 B
TypeScript

import mongoose, { Schema, PopulatedDoc, Model } from "mongoose";
import { IPrivMsg } from "./privMsg";
import { IUser } from "./user";
export interface IInbox {
owningUser: PopulatedDoc<IUser & Document>;
saved: PopulatedDoc<IPrivMsg & Document>[];
received: PopulatedDoc<IPrivMsg & Document>[];
sent: PopulatedDoc<IPrivMsg & Document>[];
}
const InboxSchema = new Schema<IInbox>({
owningUser: {
type: Number,
ref: "User",
},
saved: [
{
type: Number,
ref: "PrivMsg",
},
],
received: [
{
type: Number,
ref: "PrivMsg",
},
],
sent: [
{
type: Number,
ref: "PrivMsg",
},
],
});
export const Inbox: Model<IInbox> = mongoose.model<IInbox>("Inbox", InboxSchema, "inboxes");