summary refs log tree commit diff
path: root/src/util/entities/UserSettings.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/entities/UserSettings.ts')
-rw-r--r--src/util/entities/UserSettings.ts119
1 files changed, 119 insertions, 0 deletions
diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts
new file mode 100644
index 00000000..b1a1fe68
--- /dev/null
+++ b/src/util/entities/UserSettings.ts
@@ -0,0 +1,119 @@
+import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
+import { BaseClassWithoutId } from "./BaseClass";
+
+@Entity("user_settings")
+export class UserSettings extends BaseClassWithoutId {
+    @PrimaryGeneratedColumn()
+	index: string;
+
+	@Column({ nullable: true })
+    afk_timeout: number = 3600;
+
+	@Column({ nullable: true })
+    allow_accessibility_detection: boolean = true;
+	
+    @Column({ nullable: true })
+    animate_emoji: boolean = true;
+	
+    @Column({ nullable: true })
+    animate_stickers: number = 0;
+	
+    @Column({ nullable: true })
+    contact_sync_enabled: boolean = false;
+	
+    @Column({ nullable: true })
+    convert_emoticons: boolean = false;
+	
+    @Column({ nullable: true, type: "simple-json" })
+    custom_status: CustomStatus | null = null;
+	
+    @Column({ nullable: true })
+    default_guilds_restricted: boolean = false;
+	
+    @Column({ nullable: true })
+    detect_platform_accounts: boolean = false;
+	
+    @Column({ nullable: true })
+    developer_mode: boolean = true;
+	
+    @Column({ nullable: true })
+    disable_games_tab: boolean = true;
+	
+    @Column({ nullable: true })
+    enable_tts_command: boolean = false;
+	
+    @Column({ nullable: true })
+    explicit_content_filter: number = 0;
+	
+    @Column({ nullable: true, type: "simple-json" })
+    friend_source_flags: FriendSourceFlags = { all: true };
+	
+    @Column({ nullable: true })
+    gateway_connected: boolean = false;
+	
+    @Column({ nullable: true })
+    gif_auto_play: boolean = false;
+	
+    @Column({ nullable: true, type: "simple-json" })
+    guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder"
+	
+    @Column({ nullable: true, type: "simple-json" })
+    guild_positions: string[] = []; // guild ids ordered by position
+	
+    @Column({ nullable: true })
+    inline_attachment_media: boolean = true;
+	
+    @Column({ nullable: true })
+    inline_embed_media: boolean = true;
+	
+    @Column({ nullable: true })
+    locale: string = "en-US"; // en_US
+	
+    @Column({ nullable: true })
+    message_display_compact: boolean = false;
+	
+    @Column({ nullable: true })
+    native_phone_integration_enabled: boolean = true;
+	
+    @Column({ nullable: true })
+    render_embeds: boolean = true;
+	
+    @Column({ nullable: true })
+    render_reactions: boolean = true;
+	
+    @Column({ nullable: true, type: "simple-json" })
+    restricted_guilds: string[] = [];
+	
+    @Column({ nullable: true })
+    show_current_game: boolean = true;
+	
+    @Column({ nullable: true })
+    status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online";
+	
+    @Column({ nullable: true })
+    stream_notifications_enabled: boolean = false;
+	
+    @Column({ nullable: true })
+    theme: "dark" | "light" = "dark"; // dark
+	
+    @Column({ nullable: true })
+    timezone_offset: number = 0; // e.g -60
+}
+
+interface CustomStatus {
+    emoji_id?: string;
+    emoji_name?: string;
+    expires_at?: number;
+    text?: string;
+}
+
+interface GuildFolder {
+    color: number;
+    guild_ids: string[];
+    id: number;
+    name: string;
+}
+
+interface FriendSourceFlags { 
+    all: boolean
+}
\ No newline at end of file