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}