botx_api/bot/models/
from.rs

1use serde::{Serialize, Deserialize};
2use uuid::Uuid;
3
4use super::chat_type::ChatType;
5
6#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
7pub struct From {
8    /// (Default: null) - huid юзера который отправил команду
9    pub user_huid: Option<Uuid>,
10
11    /// (Default: null) - id чата в который отправили команда
12    pub group_chat_id: Option<Uuid>,
13    /// (Default: null) - тип чата (chat|group_chat|channel)
14    pub chat_type: Option<ChatType>,
15
16    /// (Default: null) - логин юзера который отправил команду
17    pub ad_login: Option<String>,
18
19    /// (Default: null) - домен юзера который отправил команду
20    pub ad_domain: Option<String>,
21
22    /// (Default: null) - имя юзера который отправил команду
23    pub username: Option<String>,
24
25    /// (Default: null) - является ли юзер админом чата
26    pub is_admin: Option<bool>,
27
28    /// (Default: null) - является ли юзер создателем чата
29    pub is_creator: Option<bool>,
30
31    /// (Default: null) - имя бренда производителя
32    pub manufacturer: Option<String>,
33
34    /// (Default: null) - название девайса
35    pub device: Option<String>,
36
37    /// (Default: null) - ОС девайса
38    pub device_software: Option<String>,
39
40    /// (Default: null)
41    pub device_meta: Option<DeviceMeta>,
42
43    ///  (Default: null) - название клиентской платформы (web|android|ios|desktop)
44    pub platform: Option<Platform>,
45
46
47    /// (Default: null) - идентификатор пакета с данными приложения и устройства
48    pub platform_package_id: Option<String>,
49
50    /// (Default: null) - версия приложения Express
51    pub app_version: Option<String>,
52
53    ///  (Default: null) - локаль текущей сессии
54    pub locale: Option<String>,
55
56    /// имя хоста с которого пришла команда
57    pub host: Option<String>,
58}
59
60#[derive(Debug, Default, Serialize, Deserialize, Eq, PartialEq)]
61pub struct DeviceMeta {
62    ///  разрешение приложению на отправку пушей
63    pub pushes: Option<bool>,
64    
65    /// таймзона пользователя
66    pub timezone: Option<String>,
67    
68    /// различные разрешения приложения (использование микрофона, камеры и тд)
69    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}