///|
pub(all) struct User {
id : String
name : String
avatar_url : String?
} derive(Show, Eq)
///|
pub(all) enum MessageStatus {
Sending
Sent
Delivered
Read
Failed
} derive(Show, Eq)
///|
pub(all) enum MessageContent {
Text(String)
Markdown(String)
Image(url~ : String, caption~ : String?)
System(String)
} derive(Show, Eq)
///|
pub(all) struct MessageSnapshot {
id : String
sender : User
content : MessageContent
timestamp_ms : Int64
status : MessageStatus
} derive(Show, Eq)