privchat_protocol/rpc/account/
user.rs1use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct AccountUserDetailRequest {
26 pub target_user_id: u64,
28 pub source: String,
30 pub source_id: String,
32
33 #[serde(skip_deserializing, default)]
35 pub user_id: u64,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
42pub struct AccountUserShareCardRequest {
43 pub target_user_id: u64,
45 pub receiver_id: u64,
47 #[serde(skip_serializing_if = "Option::is_none")]
49 pub expire_seconds: Option<u64>,
50
51 #[serde(skip_deserializing, default)]
53 pub sharer_id: u64,
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
60pub struct AccountUserUpdateRequest {
61 #[serde(skip_serializing_if = "Option::is_none")]
63 pub display_name: Option<String>,
64 #[serde(skip_serializing_if = "Option::is_none")]
66 pub avatar_url: Option<String>,
67 #[serde(skip_serializing_if = "Option::is_none")]
69 pub bio: Option<String>,
70
71 #[serde(skip_deserializing, default)]
73 pub user_id: u64,
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize)]
80pub struct AccountUserDetailResponse {
81 pub user_id: u64,
82 pub username: String,
83 pub nickname: String,
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub avatar_url: Option<String>,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub phone: Option<String>,
88 #[serde(skip_serializing_if = "Option::is_none")]
89 pub email: Option<String>,
90 pub user_type: i16,
91 pub is_friend: bool,
92 pub can_send_message: bool,
93 pub source_type: String,
94 pub source_id: String,
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
101pub struct AccountUserUpdateResponse {
102 pub status: String,
103 pub action: String,
104 pub timestamp: String,
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
111pub struct AccountUserShareCardResponse {
112 pub share_id: String,
113 pub target_user_id: u64,
114 pub receiver_id: u64,
115 pub created_at: String,
116 #[serde(skip_serializing_if = "Option::is_none")]
117 pub share_key: Option<String>,
118 #[serde(skip_serializing_if = "Option::is_none")]
119 pub share_url: Option<String>,
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub expire_at: Option<String>,
122}