agentmux_srv/messaging/telegram/
types.rs1use serde::{Deserialize, Serialize};
12
13#[derive(Debug, Deserialize)]
16pub struct Update {
17 pub update_id: i64,
18 #[serde(default)]
19 pub message: Option<Message>,
20 #[serde(default)]
21 #[allow(dead_code)]
22 pub callback_query: Option<CallbackQuery>,
23}
24
25#[derive(Debug, Clone, Deserialize)]
26pub struct Message {
27 #[allow(dead_code)]
28 pub message_id: i64,
29 pub chat: Chat,
30 #[serde(default)]
31 pub from: Option<User>,
32 #[serde(default)]
33 pub text: Option<String>,
34 #[serde(default)]
35 #[allow(dead_code)]
36 pub date: i64,
37}
38
39#[derive(Debug, Clone, Deserialize)]
40pub struct Chat {
41 pub id: i64,
42 #[serde(rename = "type")]
43 #[allow(dead_code)]
44 pub type_: String,
45}
46
47#[derive(Debug, Clone, Deserialize)]
48pub struct User {
49 #[allow(dead_code)]
50 pub id: i64,
51 #[serde(default)]
52 pub username: Option<String>,
53 #[serde(default)]
54 pub is_bot: bool,
55}
56
57#[derive(Debug, Deserialize)]
60#[allow(dead_code)]
61pub struct CallbackQuery {
62 pub id: String,
63 pub from: User,
64 #[serde(default)]
65 pub data: Option<String>,
66 #[serde(default)]
67 pub message: Option<Message>,
68}
69
70#[derive(Debug, Deserialize)]
73#[serde(bound(deserialize = "T: Deserialize<'de>"))]
78pub struct TelegramResponse<T> {
79 pub ok: bool,
80 #[serde(default)]
81 pub result: Option<T>,
82 #[serde(default)]
83 #[allow(dead_code)]
84 pub error_code: Option<i64>,
85 #[serde(default)]
86 pub description: Option<String>,
87 #[serde(default)]
88 pub parameters: Option<ResponseParameters>,
89}
90
91#[derive(Debug, Deserialize)]
92pub struct ResponseParameters {
93 #[serde(default)]
95 pub retry_after: Option<u64>,
96 #[serde(default)]
99 pub scope: Option<String>,
100}
101
102#[derive(Debug, Serialize)]
105pub struct SendMessageBody {
106 pub chat_id: i64,
107 pub text: String,
108 pub parse_mode: &'static str,
109}
110
111#[derive(Debug, Serialize)]
112pub struct EditMessageTextBody {
113 pub chat_id: i64,
114 pub message_id: i64,
115 pub text: String,
116 pub parse_mode: &'static str,
117}