rustigram_types/
checklist.rs1use serde::{Deserialize, Serialize};
2
3use crate::chat::Chat;
4use crate::message::{MessageEntity, ParseMode};
5use crate::user::User;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct ChecklistTask {
10 pub id: i64,
12 pub text: String,
14 #[serde(skip_serializing_if = "Option::is_none")]
16 pub text_entities: Option<Vec<MessageEntity>>,
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub completed_by_user: Option<User>,
20 #[serde(skip_serializing_if = "Option::is_none")]
22 pub completed_by_chat: Option<Chat>,
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub completion_date: Option<i64>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct Checklist {
31 pub title: String,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub title_entities: Option<Vec<MessageEntity>>,
36 pub tasks: Vec<ChecklistTask>,
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub others_can_add_tasks: Option<bool>,
41 #[serde(skip_serializing_if = "Option::is_none")]
43 pub others_can_mark_tasks_as_done: Option<bool>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct InputChecklistTask {
49 pub id: i64,
51 pub text: String,
53 #[serde(skip_serializing_if = "Option::is_none")]
55 pub parse_mode: Option<ParseMode>,
56 #[serde(skip_serializing_if = "Option::is_none")]
58 pub text_entities: Option<Vec<MessageEntity>>,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct InputChecklist {
64 pub title: String,
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub parse_mode: Option<ParseMode>,
69 #[serde(skip_serializing_if = "Option::is_none")]
71 pub title_entities: Option<Vec<MessageEntity>>,
72 pub tasks: Vec<InputChecklistTask>,
74 #[serde(skip_serializing_if = "Option::is_none")]
76 pub others_can_add_tasks: Option<bool>,
77 #[serde(skip_serializing_if = "Option::is_none")]
79 pub others_can_mark_tasks_as_done: Option<bool>,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
84pub struct ChecklistTasksDone {
85 #[serde(skip_serializing_if = "Option::is_none")]
90 pub checklist_message: Option<Box<crate::message::Message>>,
91 #[serde(skip_serializing_if = "Option::is_none")]
93 pub marked_as_done_task_ids: Option<Vec<i64>>,
94 #[serde(skip_serializing_if = "Option::is_none")]
96 pub marked_as_not_done_task_ids: Option<Vec<i64>>,
97}
98
99#[derive(Debug, Clone, Serialize, Deserialize)]
101pub struct ChecklistTasksAdded {
102 #[serde(skip_serializing_if = "Option::is_none")]
106 pub checklist_message: Option<Box<crate::message::Message>>,
107 pub tasks: Vec<ChecklistTask>,
109}