✨ Channel recipients
This commit is contained in:
		
							parent
							
								
									a9af9223d3
								
							
						
					
					
						commit
						2fa12784a1
					
				| @ -1,6 +1,7 @@ | ||||
| import { Schema, model, Types, Document } from "mongoose"; | ||||
| import db from "../util/Database"; | ||||
| import toBigInt from "../util/toBigInt"; | ||||
| import { UserModel } from "./User"; | ||||
| 
 | ||||
| // @ts-ignore
 | ||||
| export interface AnyChannel extends Channel, DMChannel, TextChannel, VoiceChannel { | ||||
| @ -14,12 +15,12 @@ export interface ChannelDocument extends Document, AnyChannel { | ||||
| export const ChannelSchema = new Schema({ | ||||
| 	id: String, | ||||
| 	created_at: { type: Schema.Types.Date, required: true }, | ||||
| 	name: { type: String, required: true }, | ||||
| 	name: String, // can't be required for dm channels
 | ||||
| 	type: { type: Number, required: true }, | ||||
| 	guild_id: String, | ||||
| 	owner_id: String, | ||||
| 	parent_id: String, | ||||
| 	recipients: [String], | ||||
| 	recipient_ids: [String], | ||||
| 	position: Number, | ||||
| 	last_message_id: String, | ||||
| 	last_pin_timestamp: Date, | ||||
| @ -36,6 +37,13 @@ export const ChannelSchema = new Schema({ | ||||
| 	], | ||||
| }); | ||||
| 
 | ||||
| ChannelSchema.virtual("recipients", { | ||||
| 	ref: UserModel, | ||||
| 	localField: "recipient_ids", | ||||
| 	foreignField: "id", | ||||
| 	justOne: false, | ||||
| 	autopopulate: true, | ||||
| }); | ||||
| // @ts-ignore
 | ||||
| export const ChannelModel = db.model<ChannelDocument>("Channel", ChannelSchema, "channels"); | ||||
| 
 | ||||
| @ -49,7 +57,6 @@ export interface Channel { | ||||
| export interface TextBasedChannel { | ||||
| 	last_message_id?: string; | ||||
| 	last_pin_timestamp?: number; | ||||
| 	recipients: null; | ||||
| } | ||||
| 
 | ||||
| export interface GuildChannel extends Channel { | ||||
| @ -85,7 +92,7 @@ export interface TextChannel extends GuildChannel, TextBasedChannel { | ||||
| // @ts-ignore
 | ||||
| export interface DMChannel extends Channel, TextBasedChannel { | ||||
| 	owner_id: string; | ||||
| 	recipients: string[]; | ||||
| 	recipient_ids: string[]; | ||||
| } | ||||
| 
 | ||||
| export enum ChannelType { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Flam3rboy
						Flam3rboy