use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct Message {
name: String,
content: String,
timestamp: DateTime<Utc>,
read_state: Option<String>,
}
impl Message {
pub fn new<S, O>(name: S, content: S, timestamp: DateTime<Utc>, read_state: O) -> Self
where S: Into<String>,
O: Into<Option<String>>
{
Self {
name: name.into(),
content: content.into(),
timestamp,
read_state: read_state.into(),
}
}
pub fn get_controller_name(&self) -> String {
self.name.clone()
}
pub fn get_read_state(&self) -> Option<String> {
self.read_state.clone()
}
pub fn get_timestamp(&self) -> DateTime<Utc> {
self.timestamp.clone()
}
pub fn get_content(&self) -> String {
self.content.clone()
}
}