botx_api/api/v3/users/
models.rs

1use chrono::{DateTime, Utc};
2use serde::{Serialize, Deserialize};
3use uuid::Uuid;
4
5use crate::bot::models::UserKind;
6
7/// Информация о пользователе
8#[derive(Debug, Serialize, Deserialize, Clone)]
9pub struct UserInfo {
10    /// id пользователя в системе eXpress
11    pub user_huid: Uuid,
12
13    /// active-directory логин пользователя
14    pub ad_login: String,
15
16    /// active-directory домен
17    pub ad_domain: String,
18
19    /// Имя пользователя
20    pub name: String,
21
22    /// Компания которую представляет пользователь
23    pub company: Option<String>,
24
25    /// Позиция пользователя в компании
26    pub company_position: Option<String>,
27
28    /// Департамент в составе которого находится пользователь
29    pub department: Option<String>,
30
31    /// Email адреса пользователя
32    pub emails: Vec<String>,
33
34    /// Альтернативный id?
35    /// 
36    /// TODO: откройте issue с расширением описания если станет понятно что это
37    pub other_id: String,
38
39    /// Вид пользователя
40    pub user_kind: UserKind,
41
42    /// Признак активности пользователя
43    pub active: Option<bool>,
44
45    /// Время регистрации пользователя
46    pub created_at: Option<DateTime<Utc>>,
47
48    /// id сервера на котором зарегистрирован пользователь
49    pub cts_id: Option<Uuid>,
50
51    /// Описание пользователя
52    /// 
53    /// TODO: откройте issue с расширением описания если станет понятно для чего это используется
54    pub description: Option<String>,
55
56    /// ip для внутренних звонков eXpress
57    pub ip_phone: Option<u32>,
58
59    /// Начальник пользователя?
60    /// 
61    /// TODO: откройте issue с расширением описания если станет понятно для чего это используется
62    pub manager: Option<String>,
63
64    /// Офис пользователя?
65    /// 
66    /// TODO: откройте issue с расширением описания если станет понятно для чего это используется
67    pub office: Option<String>,
68
69    /// Альтернативный ip для внутренних звонков eXpress
70    /// 
71    /// TODO: откройте issue с расширением описания если станет понятно для чего это используется
72    pub other_ip_phone: Option<u32>,
73
74    /// Альтернативный телефон пользователя
75    /// 
76    /// TODO: утонить где основной, добавить примечание
77    pub other_phone: Option<String>,
78
79    /// Публичное имя пользователя
80    /// 
81    /// TODO: откройте issue с расширением описания если станет понятно для чего это используется
82    pub public_name: Option<String>,
83
84    /// TODO: откройте issue с расширением описания если станет понятно для чего это используется
85    pub rts_id: Option<Uuid>,
86
87    /// Время последнего изменения информации о пользователе 
88    pub updated_at: Option<DateTime<Utc>>,
89}
90
91/// Данные юзера не найдены
92#[derive(Debug, Serialize, Deserialize, Clone)]
93pub struct UserNotFound {
94    /// Список ошибок
95    pub errors: Vec<String>,
96
97    /// Дополнительная информация об ошибке
98    pub error_data: UserNotFoundData,
99}
100
101#[derive(Debug, Serialize, Deserialize, Clone)]
102pub struct UserNotFoundData {
103}