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