privchat_protocol/rpc/message/
history.rs1use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct MessageHistoryGetRequest {
26 pub user_id: u64,
28 pub channel_id: u64,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub before_server_message_id: Option<u64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub limit: Option<u32>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
42pub struct MessageHistoryItem {
43 pub message_id: u64,
44 pub channel_id: u64,
45 pub sender_id: u64,
46 pub content: String,
47 pub message_type: String,
48 pub timestamp: String,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub reply_to_message_id: Option<u64>,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
53 pub revoked: bool,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub revoked_at: Option<i64>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub revoked_by: Option<u64>,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
64pub struct MessageHistoryResponse {
65 pub messages: Vec<MessageHistoryItem>,
66 #[serde(default)]
67 pub total: usize,
68 pub has_more: bool,
69}