polyphony_types/interfaces/
activity.rs

1use 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}