use serde::{Deserialize, Serialize};
/// Represents the scope of bot commands, covering a specific chat.
/// # Documentation
/// <https://core.telegram.org/bots/api#botcommandscopechat>
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct BotCommandScopeChat {
    /// Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren't supported.
    pub chat_id: crate::types::ChatIdKind,
}
impl BotCommandScopeChat {
    /// Creates a new `BotCommandScopeChat`.
    ///
    /// # Arguments
    /// * `chat_id` - Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren't supported.
    #[must_use]
    pub fn new<T0: Into<crate::types::ChatIdKind>>(chat_id: T0) -> Self {
        Self {
            chat_id: chat_id.into(),
        }
    }

    /// Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren't supported.
    #[must_use]
    pub fn chat_id<T: Into<crate::types::ChatIdKind>>(mut self, val: T) -> Self {
        self.chat_id = val.into();
        self
    }
}
