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