librus_rs/structs/
messages.rs1use serde::Deserialize;
4
5#[derive(Debug, Deserialize)]
7pub struct UnreadCounts {
8 pub inbox: u32,
10 pub notes: u32,
12 pub alerts: u32,
14 pub substitutions: u32,
16 pub absences: u32,
18 pub justifications: u32,
20 pub trash: u32,
22 #[serde(rename = "archiveInbox")]
23 pub archive_inbox: u32,
25 #[serde(rename = "archiveNotes")]
26 pub archive_notes: u32,
28 #[serde(rename = "archiveAlerts")]
29 pub archive_alerts: u32,
31 #[serde(rename = "archiveSubstitutions")]
32 pub archive_substitutions: u32,
34 #[serde(rename = "archiveAbsences")]
35 pub archive_absences: u32,
37 #[serde(rename = "archiveJustifications")]
38 pub archive_justifications: u32,
40 #[serde(rename = "archiveTrash")]
41 pub archive_trash: u32,
43}
44
45#[derive(Debug, Deserialize)]
46pub(crate) struct ResponseUnreadCounts {
47 pub data: UnreadCounts,
48}
49
50#[derive(Debug, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct InboxMessage {
54 pub message_id: String,
56 pub sender_first_name: String,
58 pub sender_last_name: String,
60 pub sender_name: String,
62 pub topic: String,
64 pub content: String,
67 pub send_date: String,
69 pub read_date: Option<String>,
71 pub is_any_file_attached: bool,
73 pub tags: Vec<String>,
75 pub category: Option<String>,
77}
78
79#[derive(Debug, Deserialize)]
81#[serde(rename_all = "camelCase")]
82pub struct OutboxMessage {
83 pub message_id: String,
85 pub receiver_first_name: String,
87 pub receiver_last_name: String,
89 pub receiver_name: String,
91 pub topic: String,
93 pub content: String,
95 pub send_date: String,
97 pub is_any_file_attached: bool,
99 pub tags: Vec<String>,
101 pub category: Option<String>,
103}
104
105#[derive(Debug, Deserialize)]
106pub(crate) struct ResponseInboxMessages {
107 pub data: Vec<InboxMessage>,
108}
109
110#[derive(Debug, Deserialize)]
111pub(crate) struct ResponseOutboxMessages {
112 pub data: Vec<OutboxMessage>,
113}
114
115#[derive(Debug, Deserialize)]
117#[serde(rename_all = "camelCase")]
118pub struct Attachment {
119 pub id: String,
121 pub name: String,
123 pub size: Option<u64>,
125}
126
127#[derive(Debug, Deserialize)]
129#[serde(rename_all = "camelCase")]
130pub struct MessageDetail {
131 pub message_id: String,
133 pub sender_id: Option<String>,
135 pub sender_first_name: String,
137 pub sender_last_name: String,
139 pub sender_name: String,
141 pub sender_group: Option<String>,
143 pub topic: String,
145 #[serde(rename = "Message")]
148 pub message: String,
149 pub send_date: String,
151 pub read_date: Option<String>,
153 pub attachments: Vec<Attachment>,
155 pub receivers_count: Option<u32>,
157 pub no_reply: Option<u8>,
159 pub archive: Option<u8>,
161}
162
163#[derive(Debug, Deserialize)]
164pub(crate) struct ResponseMessageDetail {
165 pub data: MessageDetail,
166}