Skip to main content

tele/types/
advanced_stories.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 `deleteStory`.
8#[derive(Clone, Debug, Serialize)]
9pub struct AdvancedDeleteStoryRequest {
10    pub business_connection_id: String,
11    pub story_id: i64,
12}
13
14impl AdvancedDeleteStoryRequest {
15    pub fn new(business_connection_id: impl Into<String>, story_id: i64) -> Self {
16        Self {
17            business_connection_id: business_connection_id.into(),
18            story_id,
19        }
20    }
21}
22
23impl AdvancedRequest for AdvancedDeleteStoryRequest {
24    type Response = bool;
25    const METHOD: &'static str = "deleteStory";
26}
27
28/// Auto-generated request for `editStory`.
29#[derive(Clone, Debug, Serialize)]
30pub struct AdvancedEditStoryRequest {
31    pub business_connection_id: String,
32    pub story_id: i64,
33    pub content: crate::types::telegram::InputStoryContent,
34    #[serde(default, skip_serializing_if = "Option::is_none")]
35    pub caption: Option<String>,
36    #[serde(default, skip_serializing_if = "Option::is_none")]
37    pub parse_mode: Option<String>,
38    #[serde(default, skip_serializing_if = "Option::is_none")]
39    pub caption_entities: Option<Vec<crate::types::message::MessageEntity>>,
40    #[serde(default, skip_serializing_if = "Option::is_none")]
41    pub areas: Option<Vec<crate::types::telegram::StoryArea>>,
42}
43
44impl AdvancedEditStoryRequest {
45    pub fn new(
46        business_connection_id: impl Into<String>,
47        story_id: i64,
48        content: crate::types::telegram::InputStoryContent,
49    ) -> Self {
50        Self {
51            business_connection_id: business_connection_id.into(),
52            story_id,
53            content,
54            caption: None,
55            parse_mode: None,
56            caption_entities: None,
57            areas: None,
58        }
59    }
60}
61
62impl AdvancedRequest for AdvancedEditStoryRequest {
63    type Response = Value;
64    const METHOD: &'static str = "editStory";
65}
66
67/// Auto-generated request for `postStory`.
68#[derive(Clone, Debug, Serialize)]
69pub struct AdvancedPostStoryRequest {
70    pub business_connection_id: String,
71    pub content: crate::types::telegram::InputStoryContent,
72    pub active_period: i64,
73    #[serde(default, skip_serializing_if = "Option::is_none")]
74    pub caption: Option<String>,
75    #[serde(default, skip_serializing_if = "Option::is_none")]
76    pub parse_mode: Option<String>,
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub caption_entities: Option<Vec<crate::types::message::MessageEntity>>,
79    #[serde(default, skip_serializing_if = "Option::is_none")]
80    pub areas: Option<Vec<crate::types::telegram::StoryArea>>,
81    #[serde(default, skip_serializing_if = "Option::is_none")]
82    pub post_to_chat_page: Option<bool>,
83    #[serde(default, skip_serializing_if = "Option::is_none")]
84    pub protect_content: Option<bool>,
85}
86
87impl AdvancedPostStoryRequest {
88    pub fn new(
89        business_connection_id: impl Into<String>,
90        content: crate::types::telegram::InputStoryContent,
91        active_period: i64,
92    ) -> Self {
93        Self {
94            business_connection_id: business_connection_id.into(),
95            content,
96            active_period,
97            caption: None,
98            parse_mode: None,
99            caption_entities: None,
100            areas: None,
101            post_to_chat_page: None,
102            protect_content: None,
103        }
104    }
105}
106
107impl AdvancedRequest for AdvancedPostStoryRequest {
108    type Response = Value;
109    const METHOD: &'static str = "postStory";
110}
111
112/// Auto-generated request for `repostStory`.
113#[derive(Clone, Debug, Serialize)]
114pub struct AdvancedRepostStoryRequest {
115    pub business_connection_id: String,
116    pub from_chat_id: i64,
117    pub from_story_id: i64,
118    pub active_period: i64,
119    #[serde(default, skip_serializing_if = "Option::is_none")]
120    pub post_to_chat_page: Option<bool>,
121    #[serde(default, skip_serializing_if = "Option::is_none")]
122    pub protect_content: Option<bool>,
123}
124
125impl AdvancedRepostStoryRequest {
126    pub fn new(
127        business_connection_id: impl Into<String>,
128        from_chat_id: i64,
129        from_story_id: i64,
130        active_period: i64,
131    ) -> Self {
132        Self {
133            business_connection_id: business_connection_id.into(),
134            from_chat_id,
135            from_story_id,
136            active_period,
137            post_to_chat_page: None,
138            protect_content: None,
139        }
140    }
141}
142
143impl AdvancedRequest for AdvancedRepostStoryRequest {
144    type Response = Value;
145    const METHOD: &'static str = "repostStory";
146}