summary refs log tree commit diff
path: root/src/gateway/schema/Activity.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/gateway/schema/Activity.ts')
-rw-r--r--src/gateway/schema/Activity.ts60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/gateway/schema/Activity.ts b/src/gateway/schema/Activity.ts
new file mode 100644
index 00000000..f58b0fa9
--- /dev/null
+++ b/src/gateway/schema/Activity.ts
@@ -0,0 +1,60 @@
+import { Activity, Status } from "@fosscord/util";
+
+export const ActivitySchema = {
+	afk: Boolean,
+	status: String,
+	$activities: [
+		{
+			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,
+				$animated: 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: String,
+
+			$id: String,
+			$sync_id: String,
+			$metadata: { // spotify
+				$context_uri: String,
+				album_id: String,
+				artist_ids: [String],
+			},
+			$session_id: String,
+		},
+	],
+	$since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle
+};
+
+export interface ActivitySchema {
+	afk: boolean;
+	status: Status;
+	activities?: Activity[];
+	since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle
+}