summary refs log tree commit diff
path: root/rtc/src/models/User.ts
diff options
context:
space:
mode:
Diffstat (limited to 'rtc/src/models/User.ts')
-rw-r--r--rtc/src/models/User.ts252
1 files changed, 0 insertions, 252 deletions
diff --git a/rtc/src/models/User.ts b/rtc/src/models/User.ts
deleted file mode 100644
index c667e954..00000000
--- a/rtc/src/models/User.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { Activity, ActivitySchema } from "./Activity";
-import { ClientStatus, Status } from "./Status";
-import { Schema, Types, Document } from "mongoose";
-import db from "../util/Database";
-import toBigInt from "../util/toBigInt";
-
-export const PublicUserProjection = {
-	username: true,
-	discriminator: true,
-	id: true,
-	public_flags: true,
-	avatar: true,
-	accent_color: true,
-	banner: true,
-	bio: true,
-	bot: true,
-};
-
-export interface User {
-	id: string;
-	username: string; // username max length 32, min 2
-	discriminator: string; // #0001 4 digit long string from #0001 - #9999
-	avatar: string | null; // hash of the user avatar
-	accent_color: number | null; // banner color of user
-	banner: string | null;
-	phone: string | null; // phone number of the user
-	desktop: boolean; // if the user has desktop app installed
-	mobile: boolean; // if the user has mobile app installed
-	premium: boolean; // if user bought nitro
-	premium_type: number; // nitro level
-	bot: boolean; // if user is bot
-	bio: string; // short description of the user (max 190 chars)
-	system: boolean; // shouldn't be used, the api sents this field type true, if the genetaed message comes from a system generated author
-	nsfw_allowed: boolean; // if the user is older than 18 (resp. Config)
-	mfa_enabled: boolean; // if multi factor authentication is enabled
-	created_at: Date; // registration date
-	verified: boolean; // if the user is offically verified
-	disabled: boolean; // if the account is disabled
-	deleted: boolean; // if the user was deleted
-	email: string | null; // email of the user
-	flags: bigint; // UserFlags
-	public_flags: bigint;
-	user_settings: UserSettings;
-	guilds: string[]; // array of guild ids the user is part of
-	user_data: UserData;
-	presence: {
-		status: Status;
-		activities: Activity[];
-		client_status: ClientStatus;
-	};
-}
-
-// Private user data:
-export interface UserData {
-	valid_tokens_since: Date; // all tokens with a previous issue date are invalid
-	relationships: Relationship[];
-	connected_accounts: ConnectedAccount[];
-	hash: string; // hash of the password, salt is saved in password (bcrypt)
-	fingerprints: string[]; // array of fingerprints -> used to prevent multiple accounts
-}
-
-export interface UserDocument extends User, Document {
-	id: string;
-}
-
-export interface PublicUser {
-	id: string;
-	discriminator: string;
-	username: string;
-	avatar: string | null;
-	accent_color: number;
-	banner: string | null;
-	public_flags: bigint;
-	bot: boolean;
-}
-
-export interface ConnectedAccount {
-	access_token: string;
-	friend_sync: boolean;
-	id: string;
-	name: string;
-	revoked: boolean;
-	show_activity: boolean;
-	type: string;
-	verifie: boolean;
-	visibility: number;
-}
-
-export interface Relationship {
-	id: string;
-	nickname?: string;
-	type: RelationshipType;
-}
-
-export enum RelationshipType {
-	outgoing = 4,
-	incoming = 3,
-	blocked = 2,
-	friends = 1,
-}
-
-export interface UserSettings {
-	afk_timeout: number;
-	allow_accessibility_detection: boolean;
-	animate_emoji: boolean;
-	animate_stickers: number;
-	contact_sync_enabled: boolean;
-	convert_emoticons: boolean;
-	custom_status: {
-		emoji_id: string | null;
-		emoji_name: string | null;
-		expires_at: number | null;
-		text: string | null;
-	};
-	default_guilds_restricted: boolean;
-	detect_platform_accounts: boolean;
-	developer_mode: boolean;
-	disable_games_tab: boolean;
-	enable_tts_command: boolean;
-	explicit_content_filter: number;
-	friend_source_flags: { all: boolean };
-	gateway_connected: boolean;
-	gif_auto_play: boolean;
-	guild_folders: // every top guild is displayed as a "folder"
-	{
-		color: number;
-		guild_ids: string[];
-		id: number;
-		name: string;
-	}[];
-	guild_positions: string[]; // guild ids ordered by position
-	inline_attachment_media: boolean;
-	inline_embed_media: boolean;
-	locale: string; // en_US
-	message_display_compact: boolean;
-	native_phone_integration_enabled: boolean;
-	render_embeds: boolean;
-	render_reactions: boolean;
-	restricted_guilds: string[];
-	show_current_game: boolean;
-	status: "online" | "offline" | "dnd" | "idle";
-	stream_notifications_enabled: boolean;
-	theme: "dark" | "white"; // dark
-	timezone_offset: number; // e.g -60
-}
-
-export const UserSchema = new Schema({
-	id: String,
-	username: String,
-	discriminator: String,
-	avatar: String,
-	accent_color: Number,
-	banner: String,
-	phone: String,
-	desktop: Boolean,
-	mobile: Boolean,
-	premium: Boolean,
-	premium_type: Number,
-	bot: Boolean,
-	bio: String,
-	system: Boolean,
-	nsfw_allowed: Boolean,
-	mfa_enabled: Boolean,
-	created_at: Date,
-	verified: Boolean,
-	disabled: Boolean,
-	deleted: Boolean,
-	email: String,
-	flags: { type: String, get: toBigInt }, // TODO: automatically convert Types.Long to BitField of UserFlags
-	public_flags: { type: String, get: toBigInt },
-	guilds: [String], // array of guild ids the user is part of
-	user_data: {
-		fingerprints: [String],
-		hash: String, // hash of the password, salt is saved in password (bcrypt)
-		valid_tokens_since: Date, // all tokens with a previous issue date are invalid
-		relationships: [
-			{
-				id: { type: String, required: true },
-				nickname: String,
-				type: { type: Number },
-			},
-		],
-		connected_accounts: [
-			{
-				access_token: String,
-				friend_sync: Boolean,
-				id: String,
-				name: String,
-				revoked: Boolean,
-				show_activity: Boolean,
-				type: { type: String },
-				verifie: Boolean,
-				visibility: Number,
-			},
-		],
-	},
-	user_settings: {
-		afk_timeout: Number,
-		allow_accessibility_detection: Boolean,
-		animate_emoji: Boolean,
-		animate_stickers: Number,
-		contact_sync_enabled: Boolean,
-		convert_emoticons: Boolean,
-		custom_status: {
-			emoji_id: String,
-			emoji_name: String,
-			expires_at: Number,
-			text: String,
-		},
-		default_guilds_restricted: Boolean,
-		detect_platform_accounts: Boolean,
-		developer_mode: Boolean,
-		disable_games_tab: Boolean,
-		enable_tts_command: Boolean,
-		explicit_content_filter: Number,
-		friend_source_flags: { all: Boolean },
-		gateway_connected: Boolean,
-		gif_auto_play: Boolean,
-		// every top guild is displayed as a "folder"
-		guild_folders: [
-			{
-				color: Number,
-				guild_ids: [String],
-				id: Number,
-				name: String,
-			},
-		],
-		guild_positions: [String], // guild ids ordered by position
-		inline_attachment_media: Boolean,
-		inline_embed_media: Boolean,
-		locale: String, // en_US
-		message_display_compact: Boolean,
-		native_phone_integration_enabled: Boolean,
-		render_embeds: Boolean,
-		render_reactions: Boolean,
-		restricted_guilds: [String],
-		show_current_game: Boolean,
-		status: String,
-		stream_notifications_enabled: Boolean,
-		theme: String, // dark
-		timezone_offset: Number, // e.g -60,
-	},
-
-	presence: {
-		status: String,
-		activities: [ActivitySchema],
-		client_status: ClientStatus,
-	},
-});
-
-// @ts-ignore
-export const UserModel = db.model<UserDocument>("User", UserSchema, "users");