import mongoose, { Schema, connect, PopulatedDoc, Document, Model, } from "mongoose"; import SequenceFactory from "mongoose-sequence"; import { IPrivMsg } from "./privMsg"; import { IUser } from "./user"; export interface IInbox { owningUser: PopulatedDoc<IUser>; saved: PopulatedDoc<IPrivMsg>[]; received: PopulatedDoc<IPrivMsg>[]; sent: PopulatedDoc<IPrivMsg>[]; } 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", );