From 8595646b72d42953814ffa2493630d15cfeeb857 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Sat, 13 Feb 2021 09:30:21 +0100 Subject: :sparkles: mongoose Schemas --- src/models/Member.ts | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) (limited to 'src/models/Member.ts') diff --git a/src/models/Member.ts b/src/models/Member.ts index a38a5ca3..d9f34ac8 100644 --- a/src/models/Member.ts +++ b/src/models/Member.ts @@ -1,6 +1,7 @@ import { PublicUser } from "./User"; +import { Schema, model, Types, Document } from "mongoose"; -export interface Member { +export interface Member extends Document { id: bigint; nick?: string; roles: bigint[]; @@ -13,10 +14,6 @@ export interface Member { settings: UserGuildSettings; } -export interface PublicMember extends Omit { - user: PublicUser; -} - export interface UserGuildSettings { channel_overrides: { channel_id: bigint; @@ -37,3 +34,43 @@ export interface MuteConfig { end_time: number; selected_time_window: number; } + +const MuteConfig = { + end_time: Number, + selected_time_window: Number, +}; + +export const MemberSchema = new Schema({ + id: Types.Long, + nick: String, + roles: [Types.Long], + joined_at: Number, + premium_since: Number, + deaf: Boolean, + mute: Boolean, + pending: Boolean, + permissions: Types.Long, + settings: { + channel_overrides: [ + { + channel_id: Types.Long, + message_notifications: Number, + mute_config: MuteConfig, + muted: Boolean, + }, + ], + message_notifications: Number, + mobile_push: Boolean, + mute_config: MuteConfig, + muted: Boolean, + suppress_everyone: Boolean, + suppress_roles: Boolean, + version: Number, + }, +}); + +export const MemberModel = model("Member", MemberSchema, "members"); + +export interface PublicMember extends Omit { + user: PublicUser; +} -- cgit 1.5.1