use crate::rest::users::web_user::{UserPrefs, UserStatus, UserSystemData};
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use super::user_login::UserCredential;
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct GetUser {
pub acct: String,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct GetUserPage {
pub prev_date: Option<DateTime<Utc>>,
pub next_date: Option<DateTime<Utc>>,
pub limit: u32,
pub host_name: String,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct PutUserPassword {
pub acct: String,
pub password: String,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct PutUserPreferences {
pub acct: String,
pub preferences: UserPrefs,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct PutUserStatus {
pub acct: String,
pub status: UserStatus,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct PutUserSysData {
pub acct: String,
pub sysinfo: UserSystemData,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum PostUser {
OpenRegistration(UserCredential),
SimpleCode {
user_creds: UserCredential,
simple_code_for_registration: String,
},
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum PostUserResponse {
AccountRegistered(Option<String>),
AccountNotRegistered(Option<String>),
AccountNeedsApproval(Option<String>),
}