1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-14 06:32:36 +01:00

updated invite model

This commit is contained in:
xnacly 2021-04-08 17:54:53 +02:00
parent c5c2af70a5
commit 2d7e6a5081

View File

@ -1,5 +1,8 @@
import { Schema, Document, Types } from "mongoose"; import { Schema, Document, Types } from "mongoose";
import db from "../util/Database"; import db from "../util/Database";
import { ChannelModel } from "./Channel";
import { UserModel } from "./User";
import { GuildModel } from "./Guild";
export interface Invite extends Document { export interface Invite extends Document {
code: string; code: string;
@ -33,5 +36,62 @@ export const InviteSchema = new Schema({
target_user_type: Number, target_user_type: Number,
}); });
InviteSchema.virtual("channel", {
ref: ChannelModel,
localField: "channel_id",
foreignField: "id",
justOne: true,
autopopulate: {
select: {
id: true,
name: true,
type: true,
},
},
});
InviteSchema.virtual("inviter", {
ref: UserModel,
localField: "inviter_id",
foreignField: "id",
justOne: true,
autopopulate: {
select: {
id: true,
username: true,
avatar: true,
discriminater: true,
public_flags: true,
},
},
});
InviteSchema.virtual("guild", {
ref: GuildModel,
localField: "guild_id",
foreignField: "id",
justOne: true,
autopopulate: {
select: {
id: true,
name: true,
splash: true,
banner: true,
description: true,
icon: true,
features: true,
verification_level: true,
vanity_url_code: true,
welcome_screen: true,
nsfw: true,
// TODO: hide the following entries:
// channels: false,
// roles: false,
// emojis: false,
},
},
});
// @ts-ignore // @ts-ignore
export const InviteModel = db.model<Invite>("Invite", InviteSchema, "invites"); export const InviteModel = db.model<Invite>("Invite", InviteSchema, "invites");