38 lines
716 B
TypeScript
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");
|