botx_api/bot/models/
from.rs1use serde::{Serialize, Deserialize};
2use uuid::Uuid;
3
4use super::chat_type::ChatType;
5
6#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
7pub struct From {
8 pub user_huid: Option<Uuid>,
10
11 pub group_chat_id: Option<Uuid>,
13 pub chat_type: Option<ChatType>,
15
16 pub ad_login: Option<String>,
18
19 pub ad_domain: Option<String>,
21
22 pub username: Option<String>,
24
25 pub is_admin: Option<bool>,
27
28 pub is_creator: Option<bool>,
30
31 pub manufacturer: Option<String>,
33
34 pub device: Option<String>,
36
37 pub device_software: Option<String>,
39
40 pub device_meta: Option<DeviceMeta>,
42
43 pub platform: Option<Platform>,
45
46
47 pub platform_package_id: Option<String>,
49
50 pub app_version: Option<String>,
52
53 pub locale: Option<String>,
55
56 pub host: Option<String>,
58}
59
60#[derive(Debug, Default, Serialize, Deserialize, Eq, PartialEq)]
61pub struct DeviceMeta {
62 pub pushes: Option<bool>,
64
65 pub timezone: Option<String>,
67
68 pub permissions: Option<Permissions>,
70}
71
72#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
73pub enum Platform {
74 #[serde(rename(serialize = "web", deserialize = "web"))]
75 Web,
76 #[serde(rename(serialize = "android", deserialize = "android"))]
77 Android,
78 #[serde(rename(serialize = "ios", deserialize = "ios"))]
79 Ios,
80 #[serde(rename(serialize = "desktop", deserialize = "desktop"))]
81 Desktop
82}
83
84#[derive(Debug, Default, Serialize, Deserialize, Eq, PartialEq)]
85pub struct Permissions {
86 pub contacts: Option<bool>,
87 pub microphone: Option<bool>,
88 pub notifications: Option<bool>,
89 pub storage: Option<bool>,
90}