next/models/inbox.ts
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ 1447960b1a
refactor(db/models): update populatedDoc types
- remove `& Document` qualifier
- cast `T | number` to T with the `as` keyword
2023-12-29 19:06:55 -05:00

49 lines
752 B
TypeScript

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",
);