botrs 0.13.0

A Rust QQ Bot framework based on QQ Guild Bot API
Documentation
use crate::models::{Snowflake, Timestamp};
use serde::{Deserialize, Serialize};

/// Direct message session returned by the direct-message OpenAPI.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct DirectMessage {
    /// Guild ID of the DM session
    #[serde(default)]
    pub guild_id: Snowflake,
    /// Channel ID of the DM session
    #[serde(default)]
    pub channel_id: Snowflake,
    /// Creation timestamp
    #[serde(default)]
    pub create_time: Timestamp,
}

/// Payload for creating a direct message session.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct DirectMessageToCreate {
    /// Source guild ID
    pub source_guild_id: String,
    /// Recipient user ID
    pub recipient_id: String,
}

impl DirectMessageToCreate {
    /// Creates a direct-message session payload.
    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(),
        }
    }
}