summary refs log tree commit diff
path: root/rtc/src/models/Ban.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 20:33:42 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 20:33:42 +0200
commita92c6637cea0ce595c712c3d445b57a1184e833e (patch)
treeb4aa50b4091617195025e2ed36406ae61e8fe3b9 /rtc/src/models/Ban.ts
parent:sparkles: util (diff)
downloadserver-a92c6637cea0ce595c712c3d445b57a1184e833e.tar.xz
:sparkles: rtc
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");