use super::MessageState;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ConversationRecord {
pub conversation_id: String,
#[serde(alias = "peer_id")]
pub peer_destination_hex: String,
pub peer_display_name: Option<String>,
pub last_message_preview: Option<String>,
pub last_message_at_ms: u64,
pub unread_count: u32,
pub last_message_state: Option<MessageState>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct ConversationListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub peer_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_receipts: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ConversationListPage {
pub conversations: Vec<ConversationRecord>,
pub next_cursor: Option<String>,
}