plexus_comms/activations/telegram/
types.rs1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
6pub struct SendMessageParams {
7 pub chat_id: String,
8 pub text: String,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub parse_mode: Option<ParseMode>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub reply_to_message_id: Option<i64>,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
16#[serde(rename_all = "PascalCase")]
17pub enum ParseMode {
18 Markdown,
19 Html,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
23pub struct SendPhotoParams {
24 pub chat_id: String,
25 pub photo: String, #[serde(skip_serializing_if = "Option::is_none")]
27 pub caption: Option<String>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
32#[serde(tag = "type", rename_all = "snake_case")]
33pub enum SendMessageEvent {
34 Sent {
35 message_id: i64,
36 chat_id: String,
37 },
38 Error {
39 message: String,
40 code: Option<String>,
41 },
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
45#[serde(tag = "type", rename_all = "snake_case")]
46pub enum UpdateEvent {
47 Message {
48 message_id: i64,
49 chat_id: String,
50 from_user: String,
51 text: String,
52 timestamp: i64,
53 },
54 CallbackQuery {
55 query_id: String,
56 from_user: String,
57 data: String,
58 },
59 Error {
60 message: String,
61 },
62}