1use serde::Serialize;
3use serde_json::Value;
4
5use super::AdvancedRequest;
6
7#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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}