android_sms_gateway/types/
inbox.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
7pub enum IncomingMessageType {
8 Sms,
9 DataSms,
10 Mms,
11 MmsDownloaded,
12 #[serde(other)]
13 Other,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(rename_all = "camelCase")]
19pub struct IncomingMessage {
20 pub id: String,
21 #[serde(rename = "type")]
23 pub message_type: IncomingMessageType,
24 pub sender: String,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub recipient: Option<String>,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub sim_number: Option<u8>,
32 pub content_preview: String,
34 pub created_at: DateTime<Utc>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub attachments: Option<Vec<IncomingMessageAttachment>>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct IncomingMessageAttachment {
45 pub part_id: i32,
47 pub name: String,
49 pub size: i64,
51 pub content_type: String,
53}
54
55#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
57pub enum WebhookDelivery {
58 #[serde(rename = "Disabled")]
59 Disabled,
60 #[serde(rename = "Individual")]
61 Individual,
62 #[serde(rename = "Batch")]
63 Batch,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(rename_all = "camelCase")]
69pub struct InboxRefreshRequest {
70 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub device_id: Option<String>,
73 pub since: DateTime<Utc>,
75 pub until: DateTime<Utc>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub message_types: Option<Vec<IncomingMessageType>>,
80 #[serde(default, skip_serializing_if = "std::ops::Not::not")]
84 pub trigger_webhooks: bool,
85 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub webhook_delivery: Option<WebhookDelivery>,
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(rename_all = "camelCase")]
93pub struct MessagesExportRequest {
94 pub device_id: String,
96 pub since: DateTime<Utc>,
98 pub until: DateTime<Utc>,
100}