polyphony_types/interfaces/
activity.rs1use serde::{Deserialize, Serialize};
2use crate::entities::Emoji;
3
4#[derive(Debug, Deserialize, Serialize, Clone)]
5pub struct Activity {
6 name: String,
7 #[serde(rename = "type")]
8 activity_type: i32,
9 url: Option<String>,
10 created_at: i64,
11 timestamps: Option<ActivityTimestamps>,
12 application_id: Option<String>,
13 details: Option<String>,
14 state: Option<String>,
15 emoji: Option<Emoji>,
16 party: Option<ActivityParty>,
17 assets: Option<ActivityAssets>,
18 secrets: Option<ActivitySecrets>,
19 instance: Option<bool>,
20 flags: Option<i32>,
21 buttons: Option<Vec<ActivityButton>>,
22}
23
24
25#[derive(Debug, Deserialize, Serialize, Clone)]
26struct ActivityTimestamps {
27 start: Option<i64>,
28 end: Option<i64>,
29}
30
31#[derive(Debug, Deserialize, Serialize, Clone)]
32struct ActivityParty {
33 id: Option<String>,
34 size: Option<Vec<(i32, i32)>>,
35}
36
37#[derive(Debug, Deserialize, Serialize, Clone)]
38struct ActivityAssets {
39 large_image: Option<String>,
40 large_text: Option<String>,
41 small_image: Option<String>,
42 small_text: Option<String>,
43}
44
45#[derive(Debug, Deserialize, Serialize, Clone)]
46struct ActivitySecrets {
47 join: Option<String>,
48 spectate: Option<String>,
49 #[serde(rename = "match")]
50 match_string: Option<String>,
51}
52
53#[derive(Debug, Deserialize, Serialize, Clone)]
54struct ActivityButton {
55 label: String,
56 url: String,
57}