summary refs log tree commit diff
path: root/util/oldModels/Template.ts
diff options
context:
space:
mode:
Diffstat (limited to 'util/oldModels/Template.ts')
-rw-r--r--util/oldModels/Template.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/util/oldModels/Template.ts b/util/oldModels/Template.ts
new file mode 100644

index 00000000..ad0f9104 --- /dev/null +++ b/util/oldModels/Template.ts
@@ -0,0 +1,51 @@ +import { Schema, model, Types, Document } from "mongoose"; +import db from "../util/Database"; +import { PublicUser, User, UserModel, PublicUserProjection } from "./User"; +import { Guild, GuildModel } from "./Guild"; + +export interface Template extends Document { + id: string; + code: string; + name: string; + description?: string; + usage_count?: number; + creator_id: string; + creator: User; + created_at: Date; + updated_at: Date; + source_guild_id: String; + serialized_source_guild: Guild; +} + +export const TemplateSchema = new Schema({ + id: String, + code: String, + name: String, + description: String, + usage_count: Number, + creator_id: String, + created_at: Date, + updated_at: Date, + source_guild_id: String, +}); + +TemplateSchema.virtual("creator", { + ref: UserModel, + localField: "creator_id", + foreignField: "id", + justOne: true, + autopopulate: { + select: PublicUserProjection, + }, +}); + +TemplateSchema.virtual("serialized_source_guild", { + ref: GuildModel, + localField: "source_guild_id", + foreignField: "id", + justOne: true, + autopopulate: true, +}); + +// @ts-ignore +export const TemplateModel = db.model<Template>("Template", TemplateSchema, "templates");