tele/types/
advanced_stories.rs1use serde::Serialize;
3use serde_json::Value;
4
5use super::AdvancedRequest;
6
7#[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#[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#[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#[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}