use serde::{Serialize, Deserialize};
use uuid::Uuid;
use crate::bot::models::UserKind;
#[derive(Debug, Serialize, Deserialize, Clone)]
pub enum SyncSource {
#[serde(rename(serialize = "ad", deserialize = "ad"))]
Ad,
#[serde(rename(serialize = "admin", deserialize = "admin"))]
Admin,
#[serde(rename(serialize = "email", deserialize = "email"))]
Email,
#[serde(rename(serialize = "openid", deserialize = "openid"))]
OpenId,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct UserShortInfo {
#[serde(rename = "HUID")]
pub huid: Uuid,
#[serde(rename = "AD Login")]
pub ad_login: String,
#[serde(rename = "Domain")]
pub ad_domain: String,
#[serde(rename = "AD E-mail")]
pub ad_email: Option<String>,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Sync source")]
pub sync_source: SyncSource,
#[serde(rename = "Active")]
pub active: bool,
#[serde(rename = "Kind")]
pub kind: UserKind,
#[serde(rename = "Company")]
pub company: Option<String>,
#[serde(rename = "Department")]
pub department: Option<String>,
#[serde(rename = "Position")]
pub position: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(tag = "reason")]
pub enum GetUsersAsCsvError {
#[serde(rename(serialize = "no_user_kind_selected", deserialize = "no_user_kind_selected"))]
NoUserKindSelected(NoUserKindSelected),
#[serde(other)]
Other,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct NoUserKindSelected {
pub errors: Vec<String>,
pub error_data: NoUserKindSelectedData,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct NoUserKindSelectedData {
}