From 7685e19835afdf0b403a676c16ada663ddcbc29d Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Tue, 6 Apr 2021 18:01:49 +0200 Subject: :art: Convert id bigint to string --- src/models/Invite.ts | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'src/models/Invite.ts') diff --git a/src/models/Invite.ts b/src/models/Invite.ts index fc60b93c..590a4598 100644 --- a/src/models/Invite.ts +++ b/src/models/Invite.ts @@ -8,14 +8,13 @@ export interface Invite extends Document { max_uses: number; max_age: number; created_at: Date; - guild_id: bigint; - channel_id: bigint; - inviter_id: bigint; + guild_id: string; + channel_id: string; + inviter_id: string; - //! What the fucking shit is this - target_user_id?: bigint; + // ? What the fucking shit is this + target_user_id?: string; target_user_type?: number; - // ! } export const InviteSchema = new Schema({ @@ -25,14 +24,13 @@ export const InviteSchema = new Schema({ max_uses: Number, max_age: Number, created_at: Date, - guild_id: Types.Long, - channel_id: Types.Long, - inviter_id: Types.Long, + guild_id: String, + channel_id: String, + inviter_id: String, - //! What the fucking shit is this - target_user_id: Types.Long, + // ? What the fucking shit is this + target_user_id: String, target_user_type: Number, - // ! }); // @ts-ignore -- cgit 1.5.1 From 2d7e6a5081faef289c5a2f67189f220dc8c893ed Mon Sep 17 00:00:00 2001 From: xnacly Date: Thu, 8 Apr 2021 17:54:53 +0200 Subject: updated invite model --- src/models/Invite.ts | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'src/models/Invite.ts') diff --git a/src/models/Invite.ts b/src/models/Invite.ts index 590a4598..41f33a02 100644 --- a/src/models/Invite.ts +++ b/src/models/Invite.ts @@ -1,5 +1,8 @@ import { Schema, Document, Types } from "mongoose"; import db from "../util/Database"; +import { ChannelModel } from "./Channel"; +import { UserModel } from "./User"; +import { GuildModel } from "./Guild"; export interface Invite extends Document { code: string; @@ -33,5 +36,62 @@ export const InviteSchema = new Schema({ 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 export const InviteModel = db.model("Invite", InviteSchema, "invites"); -- cgit 1.5.1