privchat_protocol/rpc/
channel_broadcast.rs1use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct ChannelBroadcastSubscribeRequest {
26 #[serde(default)]
28 pub user_id: u64,
29
30 pub channel_id: u64,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct ChannelBroadcastSubscribeResponse {
39 pub status: String,
40 pub message: String,
41 pub channel_id: u64,
42 pub user_id: u64,
43 pub subscribed_at: String,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct ChannelBroadcastActionResponse {
49 pub status: String,
50 pub action: String,
51 pub timestamp: String,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
58pub struct ChannelBroadcastCreateRequest {
59 pub name: String,
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub description: Option<String>,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub avatar_url: Option<String>,
64}
65
66pub type ChannelBroadcastCreateResponse = ChannelBroadcastActionResponse;
70
71#[derive(Debug, Clone, Serialize, Deserialize)]
75pub struct ChannelBroadcastListRequest {
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub page: Option<u32>,
78 #[serde(skip_serializing_if = "Option::is_none")]
79 pub page_size: Option<u32>,
80}
81
82pub type ChannelBroadcastListResponse = ChannelBroadcastActionResponse;
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
91pub struct ChannelContentPublishRequest {
92 pub channel_id: u64,
93 pub content: String,
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub title: Option<String>,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub content_type: Option<String>,
98}
99
100pub type ChannelContentPublishResponse = ChannelBroadcastActionResponse;
104
105#[derive(Debug, Clone, Serialize, Deserialize)]
109pub struct ChannelContentListRequest {
110 pub channel_id: u64,
111 #[serde(skip_serializing_if = "Option::is_none")]
112 pub page: Option<u32>,
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub page_size: Option<u32>,
115}
116
117pub type ChannelContentListResponse = ChannelBroadcastActionResponse;