import { User } from ".."; import { ClientStatus, Status } from "./Status"; import { Schema, model, Types, Document } from "mongoose"; export interface Presence { user: User; guild_id?: string; status: Status; activities: Activity[]; client_status: ClientStatus; } export interface Activity { name: string; type: ActivityType; url?: string; created_at?: Date; timestamps?: { start?: number; end?: number; }[]; application_id?: string; details?: string; state?: string; emoji?: { name: string; id?: string; amimated?: boolean; }; party?: { id?: string; size?: [number, number]; }; assets?: { large_image?: string; large_text?: string; small_image?: string; small_text?: string; }; secrets?: { join?: string; spectate?: string; match?: string; }; instance?: boolean; flags?: bigint; } export const Activity = { name: String, type: Number, $url: String, $created_at: Date, $timestamps: [ { $start: Number, $end: Number, }, ], $application_id: String, $details: String, $state: String, $emoji: { $name: String, $id: String, $amimated: Boolean, }, $party: { $id: String, $size: [Number, Number], }, $assets: { $large_image: String, $large_text: String, $small_image: String, $small_text: String, }, $secrets: { $join: String, $spectate: String, $match: String, }, $instance: Boolean, $flags: Types.Long, }; export enum ActivityType { GAME = 0, STREAMING = 1, LISTENING = 2, CUSTOM = 4, COMPETING = 5, }