summary refs log tree commit diff
path: root/rtc/src/models/Role.ts
diff options
context:
space:
mode:
Diffstat (limited to 'rtc/src/models/Role.ts')
-rw-r--r--rtc/src/models/Role.ts42
1 files changed, 42 insertions, 0 deletions
diff --git a/rtc/src/models/Role.ts b/rtc/src/models/Role.ts
new file mode 100644
index 00000000..c1111c84
--- /dev/null
+++ b/rtc/src/models/Role.ts
@@ -0,0 +1,42 @@
+import { Schema, model, Types, Document } from "mongoose";
+import db from "../util/Database";
+import toBigInt from "../util/toBigInt";
+
+export interface Role {
+	id: string;
+	guild_id: string;
+	color: number;
+	hoist: boolean;
+	managed: boolean;
+	mentionable: boolean;
+	name: string;
+	permissions: bigint;
+	position: number;
+	tags?: {
+		bot_id?: string;
+	};
+}
+
+export interface RoleDocument extends Document, Role {
+	id: string;
+}
+
+export const RoleSchema = new Schema({
+	id: String,
+	guild_id: String,
+	color: Number,
+	hoist: Boolean,
+	managed: Boolean,
+	mentionable: Boolean,
+	name: String,
+	permissions: { type: String, get: toBigInt },
+	position: Number,
+	tags: {
+		bot_id: String,
+	},
+});
+
+RoleSchema.set("removeResponse", ["guild_id"]);
+
+// @ts-ignore
+export const RoleModel = db.model<RoleDocument>("Role", RoleSchema, "roles");