privchat_protocol/rpc/group/
group.rs1use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct GroupCreateRequest {
26 pub name: String,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub description: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
33 pub member_ids: Option<Vec<u64>>,
34
35 #[serde(skip_deserializing, default)]
37 pub creator_id: u64,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
44pub struct GroupInfoRequest {
45 pub group_id: u64,
47
48 #[serde(skip_deserializing, default)]
50 pub user_id: u64,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
57pub struct GroupCreateResponse {
58 pub group_id: u64,
59 pub name: String,
60 pub description: Option<String>,
61 pub member_count: u32,
62 pub created_at: String, pub creator_id: u64,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
70pub struct GroupInfoResponse {
71 pub group_id: u64,
72 pub name: String,
73 pub description: Option<String>,
74 pub avatar_url: Option<String>,
75 pub owner_id: u64,
76 pub created_at: String,
77 pub updated_at: String,
78 pub member_count: u32,
79 pub message_count: Option<u32>,
80 pub is_archived: Option<bool>,
81 pub tags: Option<serde_json::Value>,
82 pub custom_fields: Option<serde_json::Value>,
83}