use crate::models::Snowflake;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct DirectMessage {
pub guild_id: Option<Snowflake>,
pub channel_id: Option<Snowflake>,
pub create_time: Option<String>,
}
pub type DirectMessageSession = DirectMessage;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct DirectMessageToCreate {
pub source_guild_id: String,
pub recipient_id: String,
}
impl DirectMessageToCreate {
pub fn new(source_guild_id: impl Into<String>, recipient_id: impl Into<String>) -> Self {
Self {
source_guild_id: source_guild_id.into(),
recipient_id: recipient_id.into(),
}
}
}
impl DirectMessage {
pub fn new() -> Self {
Self::default()
}
pub fn from_data(data: serde_json::Value) -> Self {
serde_json::from_value(data).unwrap_or_default()
}
}