gewe_core/group/
settings.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct SetChatroomAnnouncementRequest<'a> {
6    #[serde(rename = "appId")]
7    pub app_id: &'a str,
8    #[serde(rename = "chatroomId")]
9    pub chatroom_id: &'a str,
10    #[serde(rename = "content")]
11    pub content: &'a str,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub struct GetChatroomAnnouncementRequest<'a> {
17    #[serde(rename = "appId")]
18    pub app_id: &'a str,
19    #[serde(rename = "chatroomId")]
20    pub chatroom_id: &'a str,
21    #[serde(rename = "type")]
22    pub r#type: i64,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, Default)]
26#[serde(rename_all = "camelCase")]
27pub struct GetChatroomAnnouncementResponse {
28    #[serde(rename = "chatRoomAnnouncement")]
29    pub chat_room_announcement: String,
30    pub sender: String,
31    #[serde(rename = "createTime")]
32    pub create_time: String,
33    #[serde(rename = "expireTime")]
34    pub expire_time: String,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub struct GetChatroomQrCodeRequest<'a> {
40    #[serde(rename = "appId")]
41    pub app_id: &'a str,
42    #[serde(rename = "chatroomId")]
43    pub chatroom_id: &'a str,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize, Default)]
47#[serde(rename_all = "camelCase")]
48pub struct GetChatroomQrCodeResponse {
49    #[serde(rename = "qrImgBase64")]
50    pub qr_img_base64: String,
51    #[serde(rename = "headImgBase64")]
52    pub head_img_base64: String,
53    #[serde(rename = "qrUrl")]
54    pub qr_url: String,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(rename_all = "camelCase")]
59pub struct SaveContractListRequest<'a> {
60    #[serde(rename = "appId")]
61    pub app_id: &'a str,
62    #[serde(rename = "chatroomId")]
63    pub chatroom_id: &'a str,
64    #[serde(rename = "save")]
65    pub save: bool,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(rename_all = "camelCase")]
70pub struct PinChatRequest<'a> {
71    #[serde(rename = "appId")]
72    pub app_id: &'a str,
73    #[serde(rename = "chatroomId")]
74    pub chatroom_id: &'a str,
75    pub add: bool,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
79#[serde(rename_all = "camelCase")]
80pub struct SetMsgSilenceRequest<'a> {
81    #[serde(rename = "appId")]
82    pub app_id: &'a str,
83    #[serde(rename = "chatroomId")]
84    pub chatroom_id: &'a str,
85    #[serde(rename = "switch")]
86    pub switch_: bool,
87}
88
89pub type SimpleGroupResponse = ();
90
91#[cfg(test)]
92mod tests {
93    use super::*;
94
95    #[test]
96    fn test_get_chatroom_announcement_response_default() {
97        let resp = GetChatroomAnnouncementResponse::default();
98        assert_eq!(resp.chat_room_announcement, "");
99        assert_eq!(resp.sender, "");
100        assert_eq!(resp.create_time, "");
101        assert_eq!(resp.expire_time, "");
102    }
103
104    #[test]
105    fn test_get_chatroom_qr_code_response_default() {
106        let resp = GetChatroomQrCodeResponse::default();
107        assert_eq!(resp.qr_img_base64, "");
108        assert_eq!(resp.head_img_base64, "");
109        assert_eq!(resp.qr_url, "");
110    }
111
112    #[test]
113    fn test_set_chatroom_announcement_request_serialization() {
114        let req = SetChatroomAnnouncementRequest {
115            app_id: "test_app",
116            chatroom_id: "room123",
117            content: "Important announcement",
118        };
119        let json = serde_json::to_string(&req).unwrap();
120        assert!(json.contains("test_app"));
121        assert!(json.contains("room123"));
122        assert!(json.contains("Important announcement"));
123    }
124
125    #[test]
126    fn test_get_chatroom_announcement_request_serialization() {
127        let req = GetChatroomAnnouncementRequest {
128            app_id: "test_app",
129            chatroom_id: "room123",
130            r#type: 1,
131        };
132        let json = serde_json::to_string(&req).unwrap();
133        assert!(json.contains("test_app"));
134        assert!(json.contains("room123"));
135    }
136
137    #[test]
138    fn test_pin_chat_request_serialization() {
139        let req = PinChatRequest {
140            app_id: "test_app",
141            chatroom_id: "room123",
142            add: true,
143        };
144        let json = serde_json::to_string(&req).unwrap();
145        assert!(json.contains("test_app"));
146        assert!(json.contains("room123"));
147        assert!(json.contains("true"));
148    }
149
150    #[test]
151    fn test_set_msg_silence_request_serialization() {
152        let req = SetMsgSilenceRequest {
153            app_id: "test_app",
154            chatroom_id: "room123",
155            switch_: false,
156        };
157        let json = serde_json::to_string(&req).unwrap();
158        assert!(json.contains("test_app"));
159        assert!(json.contains("room123"));
160        assert!(json.contains("false"));
161    }
162}