use derive_more::{Display, From, FromStr, Into};
use serde::{Deserialize, Serialize};
#[derive(
Clone,
Debug,
Default,
Deserialize,
Display,
Eq,
From,
FromStr,
Hash,
Into,
Ord,
PartialEq,
PartialOrd,
Serialize,
)]
#[serde(transparent)]
pub struct AskId(pub String);
#[derive(Clone, Debug)]
pub struct Ask {
pub(crate) ask_id: AskId,
pub asker: Option<Asker>,
pub content: String,
pub sent_at: chrono::DateTime<chrono::Utc>,
}
impl Ask {
#[must_use]
pub fn id(&self) -> &str {
&self.ask_id.0
}
}
#[derive(Clone, Debug)]
pub struct Asker {
pub handle: String,
pub display_name: String,
}