Skip to main content

tele/types/
advanced_misc.rs

1// Auto-generated by scripts/gen_advanced.py. Do not edit manually.
2use serde::Serialize;
3use serde_json::Value;
4
5use super::AdvancedRequest;
6
7/// Auto-generated request for `answerWebAppQuery`.
8#[derive(Clone, Debug, Serialize)]
9pub struct AdvancedAnswerWebAppQueryRequest {
10    pub web_app_query_id: String,
11    pub result: crate::types::telegram::InlineQueryResult,
12}
13
14impl AdvancedAnswerWebAppQueryRequest {
15    pub fn new(
16        web_app_query_id: impl Into<String>,
17        result: crate::types::telegram::InlineQueryResult,
18    ) -> Self {
19        Self {
20            web_app_query_id: web_app_query_id.into(),
21            result,
22        }
23    }
24}
25
26impl AdvancedRequest for AdvancedAnswerWebAppQueryRequest {
27    type Response = crate::types::message::SentWebAppMessage;
28    const METHOD: &'static str = "answerWebAppQuery";
29}
30
31/// Auto-generated request for `approveChatJoinRequest`.
32#[derive(Clone, Debug, Serialize)]
33pub struct AdvancedApproveChatJoinRequest {
34    pub chat_id: crate::types::common::ChatId,
35    pub user_id: crate::types::common::UserId,
36}
37
38impl AdvancedApproveChatJoinRequest {
39    pub fn new(
40        chat_id: impl Into<crate::types::common::ChatId>,
41        user_id: crate::types::common::UserId,
42    ) -> Self {
43        Self {
44            chat_id: chat_id.into(),
45            user_id,
46        }
47    }
48}
49
50impl AdvancedRequest for AdvancedApproveChatJoinRequest {
51    type Response = bool;
52    const METHOD: &'static str = "approveChatJoinRequest";
53}
54
55/// Auto-generated request for `approveSuggestedPost`.
56#[derive(Clone, Debug, Serialize)]
57pub struct AdvancedApproveSuggestedPostRequest {
58    pub chat_id: i64,
59    pub message_id: crate::types::common::MessageId,
60    #[serde(default, skip_serializing_if = "Option::is_none")]
61    pub send_date: Option<i64>,
62}
63
64impl AdvancedApproveSuggestedPostRequest {
65    pub fn new(chat_id: i64, message_id: crate::types::common::MessageId) -> Self {
66        Self {
67            chat_id,
68            message_id,
69            send_date: None,
70        }
71    }
72}
73
74impl AdvancedRequest for AdvancedApproveSuggestedPostRequest {
75    type Response = bool;
76    const METHOD: &'static str = "approveSuggestedPost";
77}
78
79/// Auto-generated request for `createChatSubscriptionInviteLink`.
80#[derive(Clone, Debug, Serialize)]
81pub struct AdvancedCreateChatSubscriptionInviteLinkRequest {
82    pub chat_id: crate::types::common::ChatId,
83    #[serde(default, skip_serializing_if = "Option::is_none")]
84    pub name: Option<String>,
85    pub subscription_period: i64,
86    pub subscription_price: i64,
87}
88
89impl AdvancedCreateChatSubscriptionInviteLinkRequest {
90    pub fn new(
91        chat_id: impl Into<crate::types::common::ChatId>,
92        subscription_period: i64,
93        subscription_price: i64,
94    ) -> Self {
95        Self {
96            chat_id: chat_id.into(),
97            name: None,
98            subscription_period,
99            subscription_price,
100        }
101    }
102}
103
104impl AdvancedRequest for AdvancedCreateChatSubscriptionInviteLinkRequest {
105    type Response = crate::types::chat::ChatInviteLink;
106    const METHOD: &'static str = "createChatSubscriptionInviteLink";
107}
108
109/// Auto-generated request for `declineChatJoinRequest`.
110#[derive(Clone, Debug, Serialize)]
111pub struct AdvancedDeclineChatJoinRequest {
112    pub chat_id: crate::types::common::ChatId,
113    pub user_id: crate::types::common::UserId,
114}
115
116impl AdvancedDeclineChatJoinRequest {
117    pub fn new(
118        chat_id: impl Into<crate::types::common::ChatId>,
119        user_id: crate::types::common::UserId,
120    ) -> Self {
121        Self {
122            chat_id: chat_id.into(),
123            user_id,
124        }
125    }
126}
127
128impl AdvancedRequest for AdvancedDeclineChatJoinRequest {
129    type Response = bool;
130    const METHOD: &'static str = "declineChatJoinRequest";
131}
132
133/// Auto-generated request for `declineSuggestedPost`.
134#[derive(Clone, Debug, Serialize)]
135pub struct AdvancedDeclineSuggestedPostRequest {
136    pub chat_id: i64,
137    pub message_id: crate::types::common::MessageId,
138    #[serde(default, skip_serializing_if = "Option::is_none")]
139    pub comment: Option<String>,
140}
141
142impl AdvancedDeclineSuggestedPostRequest {
143    pub fn new(chat_id: i64, message_id: crate::types::common::MessageId) -> Self {
144        Self {
145            chat_id,
146            message_id,
147            comment: None,
148        }
149    }
150}
151
152impl AdvancedRequest for AdvancedDeclineSuggestedPostRequest {
153    type Response = bool;
154    const METHOD: &'static str = "declineSuggestedPost";
155}
156
157/// Auto-generated request for `editChatSubscriptionInviteLink`.
158#[derive(Clone, Debug, Serialize)]
159pub struct AdvancedEditChatSubscriptionInviteLinkRequest {
160    pub chat_id: crate::types::common::ChatId,
161    pub invite_link: String,
162    #[serde(default, skip_serializing_if = "Option::is_none")]
163    pub name: Option<String>,
164}
165
166impl AdvancedEditChatSubscriptionInviteLinkRequest {
167    pub fn new(
168        chat_id: impl Into<crate::types::common::ChatId>,
169        invite_link: impl Into<String>,
170    ) -> Self {
171        Self {
172            chat_id: chat_id.into(),
173            invite_link: invite_link.into(),
174            name: None,
175        }
176    }
177}
178
179impl AdvancedRequest for AdvancedEditChatSubscriptionInviteLinkRequest {
180    type Response = crate::types::chat::ChatInviteLink;
181    const METHOD: &'static str = "editChatSubscriptionInviteLink";
182}
183
184/// Auto-generated request for `editMessageChecklist`.
185#[derive(Clone, Debug, Serialize)]
186pub struct AdvancedEditMessageChecklistRequest {
187    pub business_connection_id: String,
188    pub chat_id: i64,
189    pub message_id: crate::types::common::MessageId,
190    pub checklist: crate::types::telegram::InputChecklist,
191    #[serde(default, skip_serializing_if = "Option::is_none")]
192    pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
193}
194
195impl AdvancedEditMessageChecklistRequest {
196    pub fn new(
197        business_connection_id: impl Into<String>,
198        chat_id: i64,
199        message_id: crate::types::common::MessageId,
200        checklist: crate::types::telegram::InputChecklist,
201    ) -> Self {
202        Self {
203            business_connection_id: business_connection_id.into(),
204            chat_id,
205            message_id,
206            checklist,
207            reply_markup: None,
208        }
209    }
210}
211
212impl AdvancedRequest for AdvancedEditMessageChecklistRequest {
213    type Response = crate::types::message::Message;
214    const METHOD: &'static str = "editMessageChecklist";
215}
216
217/// Auto-generated request for `editMessageMedia`.
218#[derive(Clone, Debug, Serialize)]
219pub struct AdvancedEditMessageMediaRequest {
220    #[serde(default, skip_serializing_if = "Option::is_none")]
221    pub business_connection_id: Option<String>,
222    #[serde(default, skip_serializing_if = "Option::is_none")]
223    pub chat_id: Option<crate::types::common::ChatId>,
224    #[serde(default, skip_serializing_if = "Option::is_none")]
225    pub message_id: Option<crate::types::common::MessageId>,
226    #[serde(default, skip_serializing_if = "Option::is_none")]
227    pub inline_message_id: Option<String>,
228    pub media: crate::types::message::InputMedia,
229    #[serde(default, skip_serializing_if = "Option::is_none")]
230    pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
231}
232
233impl AdvancedEditMessageMediaRequest {
234    pub fn new(media: crate::types::message::InputMedia) -> Self {
235        Self {
236            business_connection_id: None,
237            chat_id: None,
238            message_id: None,
239            inline_message_id: None,
240            media,
241            reply_markup: None,
242        }
243    }
244}
245
246impl AdvancedRequest for AdvancedEditMessageMediaRequest {
247    type Response = crate::types::message::EditMessageResult;
248    const METHOD: &'static str = "editMessageMedia";
249}
250
251/// Auto-generated request for `forwardMessages`.
252#[derive(Clone, Debug, Serialize)]
253pub struct AdvancedForwardMessagesRequest {
254    pub chat_id: crate::types::common::ChatId,
255    #[serde(default, skip_serializing_if = "Option::is_none")]
256    pub message_thread_id: Option<i64>,
257    #[serde(default, skip_serializing_if = "Option::is_none")]
258    pub direct_messages_topic_id: Option<i64>,
259    pub from_chat_id: crate::types::common::ChatId,
260    pub message_ids: Vec<crate::types::common::MessageId>,
261    #[serde(default, skip_serializing_if = "Option::is_none")]
262    pub disable_notification: Option<bool>,
263    #[serde(default, skip_serializing_if = "Option::is_none")]
264    pub protect_content: Option<bool>,
265}
266
267impl AdvancedForwardMessagesRequest {
268    pub fn new(
269        chat_id: impl Into<crate::types::common::ChatId>,
270        from_chat_id: impl Into<crate::types::common::ChatId>,
271        message_ids: Vec<crate::types::common::MessageId>,
272    ) -> Self {
273        Self {
274            chat_id: chat_id.into(),
275            message_thread_id: None,
276            direct_messages_topic_id: None,
277            from_chat_id: from_chat_id.into(),
278            message_ids,
279            disable_notification: None,
280            protect_content: None,
281        }
282    }
283}
284
285impl AdvancedRequest for AdvancedForwardMessagesRequest {
286    type Response = Vec<crate::types::message::MessageIdObject>;
287    const METHOD: &'static str = "forwardMessages";
288}
289
290/// Auto-generated request for `getChatMenuButton`.
291#[derive(Clone, Debug, Default, Serialize)]
292pub struct AdvancedGetChatMenuButtonRequest {
293    #[serde(default, skip_serializing_if = "Option::is_none")]
294    pub chat_id: Option<i64>,
295}
296
297impl AdvancedGetChatMenuButtonRequest {
298    pub fn new() -> Self {
299        Self::default()
300    }
301}
302
303impl AdvancedRequest for AdvancedGetChatMenuButtonRequest {
304    type Response = crate::types::telegram::MenuButton;
305    const METHOD: &'static str = "getChatMenuButton";
306}
307
308/// Auto-generated request for `getGameHighScores`.
309#[derive(Clone, Debug, Serialize)]
310pub struct AdvancedGetGameHighScoresRequest {
311    pub user_id: crate::types::common::UserId,
312    #[serde(default, skip_serializing_if = "Option::is_none")]
313    pub chat_id: Option<i64>,
314    #[serde(default, skip_serializing_if = "Option::is_none")]
315    pub message_id: Option<crate::types::common::MessageId>,
316    #[serde(default, skip_serializing_if = "Option::is_none")]
317    pub inline_message_id: Option<String>,
318}
319
320impl AdvancedGetGameHighScoresRequest {
321    pub fn new(user_id: crate::types::common::UserId) -> Self {
322        Self {
323            user_id,
324            chat_id: None,
325            message_id: None,
326            inline_message_id: None,
327        }
328    }
329}
330
331impl AdvancedRequest for AdvancedGetGameHighScoresRequest {
332    type Response = Value;
333    const METHOD: &'static str = "getGameHighScores";
334}
335
336/// Auto-generated request for `getMyDefaultAdministratorRights`.
337#[derive(Clone, Debug, Default, Serialize)]
338pub struct AdvancedGetMyDefaultAdministratorRightsRequest {
339    #[serde(default, skip_serializing_if = "Option::is_none")]
340    pub for_channels: Option<bool>,
341}
342
343impl AdvancedGetMyDefaultAdministratorRightsRequest {
344    pub fn new() -> Self {
345        Self::default()
346    }
347}
348
349impl AdvancedRequest for AdvancedGetMyDefaultAdministratorRightsRequest {
350    type Response = crate::types::chat::ChatAdministratorRights;
351    const METHOD: &'static str = "getMyDefaultAdministratorRights";
352}
353
354/// Auto-generated request for `getUserChatBoosts`.
355#[derive(Clone, Debug, Serialize)]
356pub struct AdvancedGetUserChatBoostsRequest {
357    pub chat_id: crate::types::common::ChatId,
358    pub user_id: crate::types::common::UserId,
359}
360
361impl AdvancedGetUserChatBoostsRequest {
362    pub fn new(
363        chat_id: impl Into<crate::types::common::ChatId>,
364        user_id: crate::types::common::UserId,
365    ) -> Self {
366        Self {
367            chat_id: chat_id.into(),
368            user_id,
369        }
370    }
371}
372
373impl AdvancedRequest for AdvancedGetUserChatBoostsRequest {
374    type Response = Value;
375    const METHOD: &'static str = "getUserChatBoosts";
376}
377
378/// Auto-generated request for `getUserProfileAudios`.
379#[derive(Clone, Debug, Serialize)]
380pub struct AdvancedGetUserProfileAudiosRequest {
381    pub user_id: crate::types::common::UserId,
382    #[serde(default, skip_serializing_if = "Option::is_none")]
383    pub offset: Option<i64>,
384    #[serde(default, skip_serializing_if = "Option::is_none")]
385    pub limit: Option<i64>,
386}
387
388impl AdvancedGetUserProfileAudiosRequest {
389    pub fn new(user_id: crate::types::common::UserId) -> Self {
390        Self {
391            user_id,
392            offset: None,
393            limit: None,
394        }
395    }
396}
397
398impl AdvancedRequest for AdvancedGetUserProfileAudiosRequest {
399    type Response = Value;
400    const METHOD: &'static str = "getUserProfileAudios";
401}
402
403/// Auto-generated request for `removeChatVerification`.
404#[derive(Clone, Debug, Serialize)]
405pub struct AdvancedRemoveChatVerificationRequest {
406    pub chat_id: crate::types::common::ChatId,
407}
408
409impl AdvancedRemoveChatVerificationRequest {
410    pub fn new(chat_id: impl Into<crate::types::common::ChatId>) -> Self {
411        Self {
412            chat_id: chat_id.into(),
413        }
414    }
415}
416
417impl AdvancedRequest for AdvancedRemoveChatVerificationRequest {
418    type Response = bool;
419    const METHOD: &'static str = "removeChatVerification";
420}
421
422/// Auto-generated request for `removeMyProfilePhoto`.
423#[derive(Clone, Debug, Default, Serialize)]
424pub struct AdvancedRemoveMyProfilePhotoRequest {}
425
426impl AdvancedRemoveMyProfilePhotoRequest {
427    pub fn new() -> Self {
428        Self {}
429    }
430}
431
432impl AdvancedRequest for AdvancedRemoveMyProfilePhotoRequest {
433    type Response = bool;
434    const METHOD: &'static str = "removeMyProfilePhoto";
435}
436
437/// Auto-generated request for `removeUserVerification`.
438#[derive(Clone, Debug, Serialize)]
439pub struct AdvancedRemoveUserVerificationRequest {
440    pub user_id: crate::types::common::UserId,
441}
442
443impl AdvancedRemoveUserVerificationRequest {
444    pub fn new(user_id: crate::types::common::UserId) -> Self {
445        Self { user_id }
446    }
447}
448
449impl AdvancedRequest for AdvancedRemoveUserVerificationRequest {
450    type Response = bool;
451    const METHOD: &'static str = "removeUserVerification";
452}
453
454/// Auto-generated request for `savePreparedInlineMessage`.
455#[derive(Clone, Debug, Serialize)]
456pub struct AdvancedSavePreparedInlineMessageRequest {
457    pub user_id: crate::types::common::UserId,
458    pub result: crate::types::telegram::InlineQueryResult,
459    #[serde(default, skip_serializing_if = "Option::is_none")]
460    pub allow_user_chats: Option<bool>,
461    #[serde(default, skip_serializing_if = "Option::is_none")]
462    pub allow_bot_chats: Option<bool>,
463    #[serde(default, skip_serializing_if = "Option::is_none")]
464    pub allow_group_chats: Option<bool>,
465    #[serde(default, skip_serializing_if = "Option::is_none")]
466    pub allow_channel_chats: Option<bool>,
467}
468
469impl AdvancedSavePreparedInlineMessageRequest {
470    pub fn new(
471        user_id: crate::types::common::UserId,
472        result: crate::types::telegram::InlineQueryResult,
473    ) -> Self {
474        Self {
475            user_id,
476            result,
477            allow_user_chats: None,
478            allow_bot_chats: None,
479            allow_group_chats: None,
480            allow_channel_chats: None,
481        }
482    }
483}
484
485impl AdvancedRequest for AdvancedSavePreparedInlineMessageRequest {
486    type Response = crate::types::message::Message;
487    const METHOD: &'static str = "savePreparedInlineMessage";
488}
489
490/// Auto-generated request for `sendChecklist`.
491#[derive(Clone, Debug, Serialize)]
492pub struct AdvancedSendChecklistRequest {
493    pub business_connection_id: String,
494    pub chat_id: i64,
495    pub checklist: crate::types::telegram::InputChecklist,
496    #[serde(default, skip_serializing_if = "Option::is_none")]
497    pub disable_notification: Option<bool>,
498    #[serde(default, skip_serializing_if = "Option::is_none")]
499    pub protect_content: Option<bool>,
500    #[serde(default, skip_serializing_if = "Option::is_none")]
501    pub message_effect_id: Option<String>,
502    #[serde(default, skip_serializing_if = "Option::is_none")]
503    pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
504    #[serde(default, skip_serializing_if = "Option::is_none")]
505    pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
506}
507
508impl AdvancedSendChecklistRequest {
509    pub fn new(
510        business_connection_id: impl Into<String>,
511        chat_id: i64,
512        checklist: crate::types::telegram::InputChecklist,
513    ) -> Self {
514        Self {
515            business_connection_id: business_connection_id.into(),
516            chat_id,
517            checklist,
518            disable_notification: None,
519            protect_content: None,
520            message_effect_id: None,
521            reply_parameters: None,
522            reply_markup: None,
523        }
524    }
525}
526
527impl AdvancedRequest for AdvancedSendChecklistRequest {
528    type Response = crate::types::message::Message;
529    const METHOD: &'static str = "sendChecklist";
530}
531
532/// Auto-generated request for `sendGame`.
533#[derive(Clone, Debug, Serialize)]
534pub struct AdvancedSendGameRequest {
535    #[serde(default, skip_serializing_if = "Option::is_none")]
536    pub business_connection_id: Option<String>,
537    pub chat_id: i64,
538    #[serde(default, skip_serializing_if = "Option::is_none")]
539    pub message_thread_id: Option<i64>,
540    pub game_short_name: String,
541    #[serde(default, skip_serializing_if = "Option::is_none")]
542    pub disable_notification: Option<bool>,
543    #[serde(default, skip_serializing_if = "Option::is_none")]
544    pub protect_content: Option<bool>,
545    #[serde(default, skip_serializing_if = "Option::is_none")]
546    pub allow_paid_broadcast: Option<bool>,
547    #[serde(default, skip_serializing_if = "Option::is_none")]
548    pub message_effect_id: Option<String>,
549    #[serde(default, skip_serializing_if = "Option::is_none")]
550    pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
551    #[serde(default, skip_serializing_if = "Option::is_none")]
552    pub reply_markup: Option<crate::types::telegram::InlineKeyboardMarkup>,
553}
554
555impl AdvancedSendGameRequest {
556    pub fn new(chat_id: i64, game_short_name: impl Into<String>) -> Self {
557        Self {
558            business_connection_id: None,
559            chat_id,
560            message_thread_id: None,
561            game_short_name: game_short_name.into(),
562            disable_notification: None,
563            protect_content: None,
564            allow_paid_broadcast: None,
565            message_effect_id: None,
566            reply_parameters: None,
567            reply_markup: None,
568        }
569    }
570}
571
572impl AdvancedRequest for AdvancedSendGameRequest {
573    type Response = crate::types::message::Message;
574    const METHOD: &'static str = "sendGame";
575}
576
577/// Auto-generated request for `sendMessageDraft`.
578#[derive(Clone, Debug, Serialize)]
579pub struct AdvancedSendMessageDraftRequest {
580    pub chat_id: i64,
581    #[serde(default, skip_serializing_if = "Option::is_none")]
582    pub message_thread_id: Option<i64>,
583    pub draft_id: i64,
584    pub text: String,
585    #[serde(default, skip_serializing_if = "Option::is_none")]
586    pub parse_mode: Option<String>,
587    #[serde(default, skip_serializing_if = "Option::is_none")]
588    pub entities: Option<Vec<crate::types::message::MessageEntity>>,
589}
590
591impl AdvancedSendMessageDraftRequest {
592    pub fn new(chat_id: i64, draft_id: i64, text: impl Into<String>) -> Self {
593        Self {
594            chat_id,
595            message_thread_id: None,
596            draft_id,
597            text: text.into(),
598            parse_mode: None,
599            entities: None,
600        }
601    }
602}
603
604impl AdvancedRequest for AdvancedSendMessageDraftRequest {
605    type Response = bool;
606    const METHOD: &'static str = "sendMessageDraft";
607}
608
609/// Auto-generated request for `sendPaidMedia`.
610#[derive(Clone, Debug, Serialize)]
611pub struct AdvancedSendPaidMediaRequest {
612    #[serde(default, skip_serializing_if = "Option::is_none")]
613    pub business_connection_id: Option<String>,
614    pub chat_id: crate::types::common::ChatId,
615    #[serde(default, skip_serializing_if = "Option::is_none")]
616    pub message_thread_id: Option<i64>,
617    #[serde(default, skip_serializing_if = "Option::is_none")]
618    pub direct_messages_topic_id: Option<i64>,
619    pub star_count: i64,
620    pub media: Vec<crate::types::telegram::InputPaidMedia>,
621    #[serde(default, skip_serializing_if = "Option::is_none")]
622    pub payload: Option<String>,
623    #[serde(default, skip_serializing_if = "Option::is_none")]
624    pub caption: Option<String>,
625    #[serde(default, skip_serializing_if = "Option::is_none")]
626    pub parse_mode: Option<String>,
627    #[serde(default, skip_serializing_if = "Option::is_none")]
628    pub caption_entities: Option<Vec<crate::types::message::MessageEntity>>,
629    #[serde(default, skip_serializing_if = "Option::is_none")]
630    pub show_caption_above_media: Option<bool>,
631    #[serde(default, skip_serializing_if = "Option::is_none")]
632    pub disable_notification: Option<bool>,
633    #[serde(default, skip_serializing_if = "Option::is_none")]
634    pub protect_content: Option<bool>,
635    #[serde(default, skip_serializing_if = "Option::is_none")]
636    pub allow_paid_broadcast: Option<bool>,
637    #[serde(default, skip_serializing_if = "Option::is_none")]
638    pub suggested_post_parameters: Option<crate::types::telegram::SuggestedPostParameters>,
639    #[serde(default, skip_serializing_if = "Option::is_none")]
640    pub reply_parameters: Option<crate::types::telegram::ReplyParameters>,
641    #[serde(default, skip_serializing_if = "Option::is_none")]
642    pub reply_markup: Option<crate::types::telegram::ReplyMarkup>,
643}
644
645impl AdvancedSendPaidMediaRequest {
646    pub fn new(
647        chat_id: impl Into<crate::types::common::ChatId>,
648        star_count: i64,
649        media: Vec<crate::types::telegram::InputPaidMedia>,
650    ) -> Self {
651        Self {
652            business_connection_id: None,
653            chat_id: chat_id.into(),
654            message_thread_id: None,
655            direct_messages_topic_id: None,
656            star_count,
657            media,
658            payload: None,
659            caption: None,
660            parse_mode: None,
661            caption_entities: None,
662            show_caption_above_media: None,
663            disable_notification: None,
664            protect_content: None,
665            allow_paid_broadcast: None,
666            suggested_post_parameters: None,
667            reply_parameters: None,
668            reply_markup: None,
669        }
670    }
671}
672
673impl AdvancedRequest for AdvancedSendPaidMediaRequest {
674    type Response = crate::types::message::Message;
675    const METHOD: &'static str = "sendPaidMedia";
676}
677
678/// Auto-generated request for `setChatMenuButton`.
679#[derive(Clone, Debug, Default, Serialize)]
680pub struct AdvancedSetChatMenuButtonRequest {
681    #[serde(default, skip_serializing_if = "Option::is_none")]
682    pub chat_id: Option<i64>,
683    #[serde(default, skip_serializing_if = "Option::is_none")]
684    pub menu_button: Option<crate::types::telegram::MenuButton>,
685}
686
687impl AdvancedSetChatMenuButtonRequest {
688    pub fn new() -> Self {
689        Self::default()
690    }
691}
692
693impl AdvancedRequest for AdvancedSetChatMenuButtonRequest {
694    type Response = bool;
695    const METHOD: &'static str = "setChatMenuButton";
696}
697
698/// Auto-generated request for `setChatPhoto`.
699#[derive(Clone, Debug, Serialize)]
700pub struct AdvancedSetChatPhotoRequest {
701    pub chat_id: crate::types::common::ChatId,
702    pub photo: String,
703}
704
705impl AdvancedSetChatPhotoRequest {
706    pub fn new(chat_id: impl Into<crate::types::common::ChatId>, photo: impl Into<String>) -> Self {
707        Self {
708            chat_id: chat_id.into(),
709            photo: photo.into(),
710        }
711    }
712}
713
714impl AdvancedRequest for AdvancedSetChatPhotoRequest {
715    type Response = bool;
716    const METHOD: &'static str = "setChatPhoto";
717}
718
719/// Auto-generated request for `setGameScore`.
720#[derive(Clone, Debug, Serialize)]
721pub struct AdvancedSetGameScoreRequest {
722    pub user_id: crate::types::common::UserId,
723    pub score: i64,
724    #[serde(default, skip_serializing_if = "Option::is_none")]
725    pub force: Option<bool>,
726    #[serde(default, skip_serializing_if = "Option::is_none")]
727    pub disable_edit_message: Option<bool>,
728    #[serde(default, skip_serializing_if = "Option::is_none")]
729    pub chat_id: Option<i64>,
730    #[serde(default, skip_serializing_if = "Option::is_none")]
731    pub message_id: Option<crate::types::common::MessageId>,
732    #[serde(default, skip_serializing_if = "Option::is_none")]
733    pub inline_message_id: Option<String>,
734}
735
736impl AdvancedSetGameScoreRequest {
737    pub fn new(user_id: crate::types::common::UserId, score: i64) -> Self {
738        Self {
739            user_id,
740            score,
741            force: None,
742            disable_edit_message: None,
743            chat_id: None,
744            message_id: None,
745            inline_message_id: None,
746        }
747    }
748}
749
750impl AdvancedRequest for AdvancedSetGameScoreRequest {
751    type Response = Value;
752    const METHOD: &'static str = "setGameScore";
753}
754
755/// Auto-generated request for `setMessageReaction`.
756#[derive(Clone, Debug, Serialize)]
757pub struct AdvancedSetMessageReactionRequest {
758    pub chat_id: crate::types::common::ChatId,
759    pub message_id: crate::types::common::MessageId,
760    #[serde(default, skip_serializing_if = "Option::is_none")]
761    pub reaction: Option<Vec<crate::types::telegram::ReactionType>>,
762    #[serde(default, skip_serializing_if = "Option::is_none")]
763    pub is_big: Option<bool>,
764}
765
766impl AdvancedSetMessageReactionRequest {
767    pub fn new(
768        chat_id: impl Into<crate::types::common::ChatId>,
769        message_id: crate::types::common::MessageId,
770    ) -> Self {
771        Self {
772            chat_id: chat_id.into(),
773            message_id,
774            reaction: None,
775            is_big: None,
776        }
777    }
778}
779
780impl AdvancedRequest for AdvancedSetMessageReactionRequest {
781    type Response = bool;
782    const METHOD: &'static str = "setMessageReaction";
783}
784
785/// Auto-generated request for `setMyDefaultAdministratorRights`.
786#[derive(Clone, Debug, Default, Serialize)]
787pub struct AdvancedSetMyDefaultAdministratorRightsRequest {
788    #[serde(default, skip_serializing_if = "Option::is_none")]
789    pub rights: Option<crate::types::chat::ChatAdministratorRights>,
790    #[serde(default, skip_serializing_if = "Option::is_none")]
791    pub for_channels: Option<bool>,
792}
793
794impl AdvancedSetMyDefaultAdministratorRightsRequest {
795    pub fn new() -> Self {
796        Self::default()
797    }
798}
799
800impl AdvancedRequest for AdvancedSetMyDefaultAdministratorRightsRequest {
801    type Response = bool;
802    const METHOD: &'static str = "setMyDefaultAdministratorRights";
803}
804
805/// Auto-generated request for `setMyProfilePhoto`.
806#[derive(Clone, Debug, Serialize)]
807pub struct AdvancedSetMyProfilePhotoRequest {
808    pub photo: String,
809}
810
811impl AdvancedSetMyProfilePhotoRequest {
812    pub fn new(photo: impl Into<String>) -> Self {
813        Self {
814            photo: photo.into(),
815        }
816    }
817}
818
819impl AdvancedRequest for AdvancedSetMyProfilePhotoRequest {
820    type Response = bool;
821    const METHOD: &'static str = "setMyProfilePhoto";
822}
823
824/// Auto-generated request for `verifyChat`.
825#[derive(Clone, Debug, Serialize)]
826pub struct AdvancedVerifyChatRequest {
827    pub chat_id: crate::types::common::ChatId,
828    #[serde(default, skip_serializing_if = "Option::is_none")]
829    pub custom_description: Option<String>,
830}
831
832impl AdvancedVerifyChatRequest {
833    pub fn new(chat_id: impl Into<crate::types::common::ChatId>) -> Self {
834        Self {
835            chat_id: chat_id.into(),
836            custom_description: None,
837        }
838    }
839}
840
841impl AdvancedRequest for AdvancedVerifyChatRequest {
842    type Response = bool;
843    const METHOD: &'static str = "verifyChat";
844}
845
846/// Auto-generated request for `verifyUser`.
847#[derive(Clone, Debug, Serialize)]
848pub struct AdvancedVerifyUserRequest {
849    pub user_id: crate::types::common::UserId,
850    #[serde(default, skip_serializing_if = "Option::is_none")]
851    pub custom_description: Option<String>,
852}
853
854impl AdvancedVerifyUserRequest {
855    pub fn new(user_id: crate::types::common::UserId) -> Self {
856        Self {
857            user_id,
858            custom_description: None,
859        }
860    }
861}
862
863impl AdvancedRequest for AdvancedVerifyUserRequest {
864    type Response = bool;
865    const METHOD: &'static str = "verifyUser";
866}