fastcomments_sdk/client/src/models/
live_event.rs1use crate::client::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct LiveEvent {
16 #[serde(rename = "type")]
17 pub r#type: models::LiveEventType,
18 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
19 pub timestamp: Option<i64>,
20 #[serde(rename = "ts", skip_serializing_if = "Option::is_none")]
21 pub ts: Option<i64>,
22 #[serde(rename = "broadcastId", skip_serializing_if = "Option::is_none")]
23 pub broadcast_id: Option<String>,
24 #[serde(rename = "userId", skip_serializing_if = "Option::is_none")]
25 pub user_id: Option<String>,
26 #[serde(rename = "badges", skip_serializing_if = "Option::is_none")]
27 pub badges: Option<Vec<models::CommentUserBadgeInfo>>,
28 #[serde(rename = "notification", skip_serializing_if = "Option::is_none")]
29 pub notification: Option<Box<models::UserNotification>>,
30 #[serde(rename = "vote", skip_serializing_if = "Option::is_none")]
31 pub vote: Option<Box<models::PubSubVote>>,
32 #[serde(rename = "comment", skip_serializing_if = "Option::is_none")]
33 pub comment: Option<Box<models::PubSubComment>>,
34 #[serde(rename = "feedPost", skip_serializing_if = "Option::is_none")]
35 pub feed_post: Option<Box<models::FeedPost>>,
36 #[serde(rename = "extraInfo", skip_serializing_if = "Option::is_none")]
37 pub extra_info: Option<Box<models::LiveEventExtraInfo>>,
38 #[serde(rename = "config", skip_serializing_if = "Option::is_none")]
39 pub config: Option<serde_json::Value>,
40 #[serde(rename = "isClosed", skip_serializing_if = "Option::is_none")]
41 pub is_closed: Option<bool>,
42 #[serde(rename = "uj", skip_serializing_if = "Option::is_none")]
43 pub uj: Option<Vec<String>>,
44 #[serde(rename = "ul", skip_serializing_if = "Option::is_none")]
45 pub ul: Option<Vec<String>>,
46 #[serde(rename = "changes", skip_serializing_if = "Option::is_none")]
47 pub changes: Option<std::collections::HashMap<String, i32>>,
48}
49
50impl LiveEvent {
51 pub fn new(r#type: models::LiveEventType) -> LiveEvent {
52 LiveEvent {
53 r#type,
54 timestamp: None,
55 ts: None,
56 broadcast_id: None,
57 user_id: None,
58 badges: None,
59 notification: None,
60 vote: None,
61 comment: None,
62 feed_post: None,
63 extra_info: None,
64 config: None,
65 is_closed: None,
66 uj: None,
67 ul: None,
68 changes: None,
69 }
70 }
71}
72