privchat_protocol/rpc/group/
settings.rs1use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct GroupSettingsPatch {
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub join_need_approval: Option<bool>,
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub member_can_invite: Option<bool>,
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub all_muted: Option<bool>,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 pub max_members: Option<u32>,
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub announcement: Option<String>,
41 #[serde(skip_serializing_if = "Option::is_none")]
43 pub description: Option<String>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct GroupSettingsUpdateRequest {
51 pub group_id: u64,
53 pub operator_id: u64,
55 pub settings: GroupSettingsPatch,
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct GroupSettingsGetRequest {
64 pub group_id: u64,
66 pub user_id: u64,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
74pub struct GroupMuteAllRequest {
75 pub group_id: u64,
77 pub operator_id: u64,
79 #[serde(alias = "mute_all")]
81 pub muted: bool,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
88pub struct GroupSettingsUpdateResponse {
89 pub success: bool,
90 pub group_id: String,
91 pub message: String,
92 pub updated_count: u32,
93 pub updated_at: String,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct GroupSettingsData {
101 pub join_need_approval: bool,
102 pub member_can_invite: bool,
103 pub all_muted: bool,
104 pub max_members: usize,
105 #[serde(skip_serializing_if = "Option::is_none")]
106 pub announcement: Option<String>,
107 #[serde(skip_serializing_if = "Option::is_none")]
108 pub description: Option<String>,
109 pub created_at: String,
110 pub updated_at: String,
111}
112
113#[derive(Debug, Clone, Serialize, Deserialize)]
117pub struct GroupSettingsGetResponse {
118 pub group_id: u64,
119 pub settings: GroupSettingsData,
120}
121
122#[derive(Debug, Clone, Serialize, Deserialize)]
126pub struct GroupMuteAllResponse {
127 pub success: bool,
128 pub group_id: String,
129 pub all_muted: bool,
130 pub message: String,
131 pub operator_id: String,
132 pub updated_at: String,
133}