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