use serde::Serialize;
use serde_json::Value;
use super::AdvancedRequest;
#[derive(Clone, Debug, Default, Serialize)]
pub struct AdvancedGetMeRequest {}
impl AdvancedGetMeRequest {
pub fn new() -> Self {
Self {}
}
}
impl AdvancedRequest for AdvancedGetMeRequest {
type Response = crate::types::bot::User;
const METHOD: &'static str = "getMe";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedForwardMessagesRequest {
pub chat_id: crate::types::common::ChatId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_thread_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direct_messages_topic_id: Option<i64>,
pub from_chat_id: crate::types::common::ChatId,
pub message_ids: Vec<crate::types::common::MessageId>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disable_notification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protect_content: Option<bool>,
}
impl AdvancedForwardMessagesRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
from_chat_id: impl Into<crate::types::common::ChatId>,
message_ids: Vec<crate::types::common::MessageId>,
) -> Self {
Self {
chat_id: chat_id.into(),
message_thread_id: None,
direct_messages_topic_id: None,
from_chat_id: from_chat_id.into(),
message_ids,
disable_notification: None,
protect_content: None,
}
}
}
impl AdvancedRequest for AdvancedForwardMessagesRequest {
type Response = Vec<crate::types::message::MessageIdObject>;
const METHOD: &'static str = "forwardMessages";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSendVideoNoteRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub business_connection_id: Option<String>,
pub chat_id: crate::types::common::ChatId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_thread_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direct_messages_topic_id: Option<i64>,
pub video_note: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub length: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thumbnail: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disable_notification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protect_content: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_paid_broadcast: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_effect_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_post_parameters: Option<crate::types::telegram::SuggestedPostParameters>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<crate::types::telegram::ReplyMarkup>,
}
impl AdvancedSendVideoNoteRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
video_note: impl Into<String>,
) -> Self {
Self {
business_connection_id: None,
chat_id: chat_id.into(),
message_thread_id: None,
direct_messages_topic_id: None,
video_note: video_note.into(),
duration: None,
length: None,
thumbnail: None,
disable_notification: None,
protect_content: None,
allow_paid_broadcast: None,
message_effect_id: None,
suggested_post_parameters: None,
reply_parameters: None,
reply_markup: None,
}
}
}
impl AdvancedRequest for AdvancedSendVideoNoteRequest {
type Response = crate::types::message::Message;
const METHOD: &'static str = "sendVideoNote";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSendPaidMediaRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub business_connection_id: Option<String>,
pub chat_id: crate::types::common::ChatId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_thread_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direct_messages_topic_id: Option<i64>,
pub star_count: i64,
pub media: Vec<crate::types::telegram::InputPaidMedia>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub payload: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caption: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parse_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caption_entities: Option<Vec<crate::types::message::MessageEntity>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub show_caption_above_media: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disable_notification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protect_content: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_paid_broadcast: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_post_parameters: Option<crate::types::telegram::SuggestedPostParameters>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<crate::types::telegram::ReplyMarkup>,
}
impl AdvancedSendPaidMediaRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
star_count: i64,
media: Vec<crate::types::telegram::InputPaidMedia>,
) -> Self {
Self {
business_connection_id: None,
chat_id: chat_id.into(),
message_thread_id: None,
direct_messages_topic_id: None,
star_count,
media,
payload: None,
caption: None,
parse_mode: None,
caption_entities: None,
show_caption_above_media: None,
disable_notification: None,
protect_content: None,
allow_paid_broadcast: None,
suggested_post_parameters: None,
reply_parameters: None,
reply_markup: None,
}
}
}
impl AdvancedRequest for AdvancedSendPaidMediaRequest {
type Response = crate::types::message::Message;
const METHOD: &'static str = "sendPaidMedia";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSendChecklistRequest {
pub business_connection_id: String,
pub chat_id: i64,
pub checklist: crate::types::telegram::InputChecklist,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disable_notification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protect_content: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_effect_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
}
impl AdvancedSendChecklistRequest {
pub fn new(
business_connection_id: impl Into<String>,
chat_id: i64,
checklist: crate::types::telegram::InputChecklist,
) -> Self {
Self {
business_connection_id: business_connection_id.into(),
chat_id,
checklist,
disable_notification: None,
protect_content: None,
message_effect_id: None,
reply_parameters: None,
reply_markup: None,
}
}
}
impl AdvancedRequest for AdvancedSendChecklistRequest {
type Response = crate::types::message::Message;
const METHOD: &'static str = "sendChecklist";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSendMessageDraftRequest {
pub chat_id: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_thread_id: Option<i64>,
pub draft_id: i64,
pub text: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parse_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entities: Option<Vec<crate::types::message::MessageEntity>>,
}
impl AdvancedSendMessageDraftRequest {
pub fn new(chat_id: i64, draft_id: i64, text: impl Into<String>) -> Self {
Self {
chat_id,
message_thread_id: None,
draft_id,
text: text.into(),
parse_mode: None,
entities: None,
}
}
}
impl AdvancedRequest for AdvancedSendMessageDraftRequest {
type Response = bool;
const METHOD: &'static str = "sendMessageDraft";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetMessageReactionRequest {
pub chat_id: crate::types::common::ChatId,
pub message_id: crate::types::common::MessageId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reaction: Option<Vec<crate::types::telegram::ReactionType>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_big: Option<bool>,
}
impl AdvancedSetMessageReactionRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
message_id: crate::types::common::MessageId,
) -> Self {
Self {
chat_id: chat_id.into(),
message_id,
reaction: None,
is_big: None,
}
}
}
impl AdvancedRequest for AdvancedSetMessageReactionRequest {
type Response = bool;
const METHOD: &'static str = "setMessageReaction";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetUserProfileAudiosRequest {
pub user_id: crate::types::common::UserId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
}
impl AdvancedGetUserProfileAudiosRequest {
pub fn new(user_id: crate::types::common::UserId) -> Self {
Self {
user_id,
offset: None,
limit: None,
}
}
}
impl AdvancedRequest for AdvancedGetUserProfileAudiosRequest {
type Response = Value;
const METHOD: &'static str = "getUserProfileAudios";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetChatMemberTagRequest {
pub chat_id: crate::types::common::ChatId,
pub user_id: crate::types::common::UserId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl AdvancedSetChatMemberTagRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
user_id: crate::types::common::UserId,
) -> Self {
Self {
chat_id: chat_id.into(),
user_id,
tag: None,
}
}
}
impl AdvancedRequest for AdvancedSetChatMemberTagRequest {
type Response = bool;
const METHOD: &'static str = "setChatMemberTag";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedCreateChatSubscriptionInviteLinkRequest {
pub chat_id: crate::types::common::ChatId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub subscription_period: i64,
pub subscription_price: i64,
}
impl AdvancedCreateChatSubscriptionInviteLinkRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
subscription_period: i64,
subscription_price: i64,
) -> Self {
Self {
chat_id: chat_id.into(),
name: None,
subscription_period,
subscription_price,
}
}
}
impl AdvancedRequest for AdvancedCreateChatSubscriptionInviteLinkRequest {
type Response = crate::types::chat::ChatInviteLink;
const METHOD: &'static str = "createChatSubscriptionInviteLink";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedEditChatSubscriptionInviteLinkRequest {
pub chat_id: crate::types::common::ChatId,
pub invite_link: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
impl AdvancedEditChatSubscriptionInviteLinkRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
invite_link: impl Into<String>,
) -> Self {
Self {
chat_id: chat_id.into(),
invite_link: invite_link.into(),
name: None,
}
}
}
impl AdvancedRequest for AdvancedEditChatSubscriptionInviteLinkRequest {
type Response = crate::types::chat::ChatInviteLink;
const METHOD: &'static str = "editChatSubscriptionInviteLink";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedApproveChatJoinRequest {
pub chat_id: crate::types::common::ChatId,
pub user_id: crate::types::common::UserId,
}
impl AdvancedApproveChatJoinRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
user_id: crate::types::common::UserId,
) -> Self {
Self {
chat_id: chat_id.into(),
user_id,
}
}
}
impl AdvancedRequest for AdvancedApproveChatJoinRequest {
type Response = bool;
const METHOD: &'static str = "approveChatJoinRequest";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedDeclineChatJoinRequest {
pub chat_id: crate::types::common::ChatId,
pub user_id: crate::types::common::UserId,
}
impl AdvancedDeclineChatJoinRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
user_id: crate::types::common::UserId,
) -> Self {
Self {
chat_id: chat_id.into(),
user_id,
}
}
}
impl AdvancedRequest for AdvancedDeclineChatJoinRequest {
type Response = bool;
const METHOD: &'static str = "declineChatJoinRequest";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetChatPhotoRequest {
pub chat_id: crate::types::common::ChatId,
pub photo: Value,
}
impl AdvancedSetChatPhotoRequest {
pub fn new(chat_id: impl Into<crate::types::common::ChatId>, photo: Value) -> Self {
Self {
chat_id: chat_id.into(),
photo,
}
}
}
impl AdvancedRequest for AdvancedSetChatPhotoRequest {
type Response = bool;
const METHOD: &'static str = "setChatPhoto";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetUserChatBoostsRequest {
pub chat_id: crate::types::common::ChatId,
pub user_id: crate::types::common::UserId,
}
impl AdvancedGetUserChatBoostsRequest {
pub fn new(
chat_id: impl Into<crate::types::common::ChatId>,
user_id: crate::types::common::UserId,
) -> Self {
Self {
chat_id: chat_id.into(),
user_id,
}
}
}
impl AdvancedRequest for AdvancedGetUserChatBoostsRequest {
type Response = Value;
const METHOD: &'static str = "getUserChatBoosts";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetManagedBotTokenRequest {
pub user_id: crate::types::common::UserId,
}
impl AdvancedGetManagedBotTokenRequest {
pub fn new(user_id: crate::types::common::UserId) -> Self {
Self { user_id }
}
}
impl AdvancedRequest for AdvancedGetManagedBotTokenRequest {
type Response = String;
const METHOD: &'static str = "getManagedBotToken";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedReplaceManagedBotTokenRequest {
pub user_id: crate::types::common::UserId,
}
impl AdvancedReplaceManagedBotTokenRequest {
pub fn new(user_id: crate::types::common::UserId) -> Self {
Self { user_id }
}
}
impl AdvancedRequest for AdvancedReplaceManagedBotTokenRequest {
type Response = String;
const METHOD: &'static str = "replaceManagedBotToken";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetMyProfilePhotoRequest {
pub photo: Value,
}
impl AdvancedSetMyProfilePhotoRequest {
pub fn new(photo: Value) -> Self {
Self { photo }
}
}
impl AdvancedRequest for AdvancedSetMyProfilePhotoRequest {
type Response = bool;
const METHOD: &'static str = "setMyProfilePhoto";
}
#[derive(Clone, Debug, Default, Serialize)]
pub struct AdvancedRemoveMyProfilePhotoRequest {}
impl AdvancedRemoveMyProfilePhotoRequest {
pub fn new() -> Self {
Self {}
}
}
impl AdvancedRequest for AdvancedRemoveMyProfilePhotoRequest {
type Response = bool;
const METHOD: &'static str = "removeMyProfilePhoto";
}
#[derive(Clone, Debug, Default, Serialize)]
pub struct AdvancedSetChatMenuButtonRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub menu_button: Option<crate::types::telegram::MenuButton>,
}
impl AdvancedSetChatMenuButtonRequest {
pub fn new() -> Self {
Self::default()
}
}
impl AdvancedRequest for AdvancedSetChatMenuButtonRequest {
type Response = bool;
const METHOD: &'static str = "setChatMenuButton";
}
#[derive(Clone, Debug, Default, Serialize)]
pub struct AdvancedGetChatMenuButtonRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_id: Option<i64>,
}
impl AdvancedGetChatMenuButtonRequest {
pub fn new() -> Self {
Self::default()
}
}
impl AdvancedRequest for AdvancedGetChatMenuButtonRequest {
type Response = crate::types::telegram::MenuButton;
const METHOD: &'static str = "getChatMenuButton";
}
#[derive(Clone, Debug, Default, Serialize)]
pub struct AdvancedSetMyDefaultAdministratorRightsRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rights: Option<crate::types::chat::ChatAdministratorRights>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub for_channels: Option<bool>,
}
impl AdvancedSetMyDefaultAdministratorRightsRequest {
pub fn new() -> Self {
Self::default()
}
}
impl AdvancedRequest for AdvancedSetMyDefaultAdministratorRightsRequest {
type Response = bool;
const METHOD: &'static str = "setMyDefaultAdministratorRights";
}
#[derive(Clone, Debug, Default, Serialize)]
pub struct AdvancedGetMyDefaultAdministratorRightsRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub for_channels: Option<bool>,
}
impl AdvancedGetMyDefaultAdministratorRightsRequest {
pub fn new() -> Self {
Self::default()
}
}
impl AdvancedRequest for AdvancedGetMyDefaultAdministratorRightsRequest {
type Response = crate::types::chat::ChatAdministratorRights;
const METHOD: &'static str = "getMyDefaultAdministratorRights";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedVerifyUserRequest {
pub user_id: crate::types::common::UserId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_description: Option<String>,
}
impl AdvancedVerifyUserRequest {
pub fn new(user_id: crate::types::common::UserId) -> Self {
Self {
user_id,
custom_description: None,
}
}
}
impl AdvancedRequest for AdvancedVerifyUserRequest {
type Response = bool;
const METHOD: &'static str = "verifyUser";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedVerifyChatRequest {
pub chat_id: crate::types::common::ChatId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_description: Option<String>,
}
impl AdvancedVerifyChatRequest {
pub fn new(chat_id: impl Into<crate::types::common::ChatId>) -> Self {
Self {
chat_id: chat_id.into(),
custom_description: None,
}
}
}
impl AdvancedRequest for AdvancedVerifyChatRequest {
type Response = bool;
const METHOD: &'static str = "verifyChat";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedRemoveUserVerificationRequest {
pub user_id: crate::types::common::UserId,
}
impl AdvancedRemoveUserVerificationRequest {
pub fn new(user_id: crate::types::common::UserId) -> Self {
Self { user_id }
}
}
impl AdvancedRequest for AdvancedRemoveUserVerificationRequest {
type Response = bool;
const METHOD: &'static str = "removeUserVerification";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedRemoveChatVerificationRequest {
pub chat_id: crate::types::common::ChatId,
}
impl AdvancedRemoveChatVerificationRequest {
pub fn new(chat_id: impl Into<crate::types::common::ChatId>) -> Self {
Self {
chat_id: chat_id.into(),
}
}
}
impl AdvancedRequest for AdvancedRemoveChatVerificationRequest {
type Response = bool;
const METHOD: &'static str = "removeChatVerification";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedAnswerWebAppQueryRequest {
pub web_app_query_id: String,
pub result: crate::types::telegram::InlineQueryResult,
}
impl AdvancedAnswerWebAppQueryRequest {
pub fn new(
web_app_query_id: impl Into<String>,
result: crate::types::telegram::InlineQueryResult,
) -> Self {
Self {
web_app_query_id: web_app_query_id.into(),
result,
}
}
}
impl AdvancedRequest for AdvancedAnswerWebAppQueryRequest {
type Response = crate::types::message::SentWebAppMessage;
const METHOD: &'static str = "answerWebAppQuery";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSavePreparedInlineMessageRequest {
pub user_id: crate::types::common::UserId,
pub result: crate::types::telegram::InlineQueryResult,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_user_chats: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_bot_chats: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_group_chats: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_channel_chats: Option<bool>,
}
impl AdvancedSavePreparedInlineMessageRequest {
pub fn new(
user_id: crate::types::common::UserId,
result: crate::types::telegram::InlineQueryResult,
) -> Self {
Self {
user_id,
result,
allow_user_chats: None,
allow_bot_chats: None,
allow_group_chats: None,
allow_channel_chats: None,
}
}
}
impl AdvancedRequest for AdvancedSavePreparedInlineMessageRequest {
type Response = crate::types::message::Message;
const METHOD: &'static str = "savePreparedInlineMessage";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSavePreparedKeyboardButtonRequest {
pub user_id: crate::types::common::UserId,
pub button: Value,
}
impl AdvancedSavePreparedKeyboardButtonRequest {
pub fn new(user_id: crate::types::common::UserId, button: Value) -> Self {
Self { user_id, button }
}
}
impl AdvancedRequest for AdvancedSavePreparedKeyboardButtonRequest {
type Response = Value;
const METHOD: &'static str = "savePreparedKeyboardButton";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedEditMessageMediaRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub business_connection_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_id: Option<crate::types::common::ChatId>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<crate::types::common::MessageId>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inline_message_id: Option<String>,
pub media: crate::types::message::InputMedia,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
}
impl AdvancedEditMessageMediaRequest {
pub fn new(media: crate::types::message::InputMedia) -> Self {
Self {
business_connection_id: None,
chat_id: None,
message_id: None,
inline_message_id: None,
media,
reply_markup: None,
}
}
}
impl AdvancedRequest for AdvancedEditMessageMediaRequest {
type Response = crate::types::message::EditMessageResult;
const METHOD: &'static str = "editMessageMedia";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedEditMessageChecklistRequest {
pub business_connection_id: String,
pub chat_id: i64,
pub message_id: crate::types::common::MessageId,
pub checklist: crate::types::telegram::InputChecklist,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
}
impl AdvancedEditMessageChecklistRequest {
pub fn new(
business_connection_id: impl Into<String>,
chat_id: i64,
message_id: crate::types::common::MessageId,
checklist: crate::types::telegram::InputChecklist,
) -> Self {
Self {
business_connection_id: business_connection_id.into(),
chat_id,
message_id,
checklist,
reply_markup: None,
}
}
}
impl AdvancedRequest for AdvancedEditMessageChecklistRequest {
type Response = crate::types::message::Message;
const METHOD: &'static str = "editMessageChecklist";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedApproveSuggestedPostRequest {
pub chat_id: i64,
pub message_id: crate::types::common::MessageId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub send_date: Option<i64>,
}
impl AdvancedApproveSuggestedPostRequest {
pub fn new(chat_id: i64, message_id: crate::types::common::MessageId) -> Self {
Self {
chat_id,
message_id,
send_date: None,
}
}
}
impl AdvancedRequest for AdvancedApproveSuggestedPostRequest {
type Response = bool;
const METHOD: &'static str = "approveSuggestedPost";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedDeclineSuggestedPostRequest {
pub chat_id: i64,
pub message_id: crate::types::common::MessageId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
impl AdvancedDeclineSuggestedPostRequest {
pub fn new(chat_id: i64, message_id: crate::types::common::MessageId) -> Self {
Self {
chat_id,
message_id,
comment: None,
}
}
}
impl AdvancedRequest for AdvancedDeclineSuggestedPostRequest {
type Response = bool;
const METHOD: &'static str = "declineSuggestedPost";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSendGameRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub business_connection_id: Option<String>,
pub chat_id: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_thread_id: Option<i64>,
pub game_short_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disable_notification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protect_content: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_paid_broadcast: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_effect_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
}
impl AdvancedSendGameRequest {
pub fn new(chat_id: i64, game_short_name: impl Into<String>) -> Self {
Self {
business_connection_id: None,
chat_id,
message_thread_id: None,
game_short_name: game_short_name.into(),
disable_notification: None,
protect_content: None,
allow_paid_broadcast: None,
message_effect_id: None,
reply_parameters: None,
reply_markup: None,
}
}
}
impl AdvancedRequest for AdvancedSendGameRequest {
type Response = Value;
const METHOD: &'static str = "sendGame";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetGameScoreRequest {
pub user_id: crate::types::common::UserId,
pub score: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub force: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disable_edit_message: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<crate::types::common::MessageId>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inline_message_id: Option<String>,
}
impl AdvancedSetGameScoreRequest {
pub fn new(user_id: crate::types::common::UserId, score: i64) -> Self {
Self {
user_id,
score,
force: None,
disable_edit_message: None,
chat_id: None,
message_id: None,
inline_message_id: None,
}
}
}
impl AdvancedRequest for AdvancedSetGameScoreRequest {
type Response = Value;
const METHOD: &'static str = "setGameScore";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetGameHighScoresRequest {
pub user_id: crate::types::common::UserId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<crate::types::common::MessageId>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inline_message_id: Option<String>,
}
impl AdvancedGetGameHighScoresRequest {
pub fn new(user_id: crate::types::common::UserId) -> Self {
Self {
user_id,
chat_id: None,
message_id: None,
inline_message_id: None,
}
}
}
impl AdvancedRequest for AdvancedGetGameHighScoresRequest {
type Response = Value;
const METHOD: &'static str = "getGameHighScores";
}