summary refs log tree commit diff
path: root/rtc/src/models/Ban.ts
diff options
context:
space:
mode:
Diffstat (limited to 'rtc/src/models/Ban.ts')
-rw-r--r--rtc/src/models/Ban.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/rtc/src/models/Ban.ts b/rtc/src/models/Ban.ts
new file mode 100644
index 00000000..f09950ee
--- /dev/null
+++ b/rtc/src/models/Ban.ts
@@ -0,0 +1,32 @@
+import { Schema, model, Types, Document } from "mongoose";
+import db from "../util/Database";
+import { PublicUserProjection, UserModel } from "./User";
+
+export interface Ban extends Document {
+	user_id: string;
+	guild_id: string;
+	executor_id: string;
+	ip: string;
+	reason?: string;
+}
+
+export const BanSchema = new Schema({
+	user_id: { type: String, required: true },
+	guild_id: { type: String, required: true },
+	executor_id: { type: String, required: true },
+	reason: String,
+	ip: String, // ? Should we store this in here, or in the UserModel?
+});
+
+BanSchema.virtual("user", {
+	ref: UserModel,
+	localField: "user_id",
+	foreignField: "id",
+	justOne: true,
+	autopopulate: { select: PublicUserProjection },
+});
+
+BanSchema.set("removeResponse", ["user_id"]);
+
+// @ts-ignore
+export const BanModel = db.model<Ban>("Ban", BanSchema, "bans");