pub mod segment;
use serde::{Deserialize, Serialize};
pub type Message = Vec<segment::MessageSegment>;
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PrivateMessage {
pub message: Message,
pub sender: PrivateMessageSender,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct GroupMessage {
pub message: Message,
pub sender: GroupMessageSender,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct GroupMessageSender {
pub user_id: u64,
pub nickname: String,
pub card: String,
pub role: GroupRole,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum GroupRole {
Owner,
Admin,
Member,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PrivateMessageSender {
pub user_id: u64,
pub nickname: String,
pub card: String,
}