1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ExtendedUser {
16 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
17 pub id: Option<String>,
18 #[serde(rename = "org_id", skip_serializing_if = "Option::is_none")]
19 pub org_id: Option<String>,
20 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
21 pub server_id: Option<String>,
22 #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
23 pub email: Option<String>,
24 #[serde(rename = "autoalert", skip_serializing_if = "Option::is_none")]
25 pub autoalert: Option<bool>,
26 #[serde(rename = "authkey", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
28 pub authkey: Option<Option<String>>,
29 #[serde(rename = "invited_by", skip_serializing_if = "Option::is_none")]
30 pub invited_by: Option<String>,
31 #[serde(rename = "gpgkey", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
32 pub gpgkey: Option<Option<String>>,
33 #[serde(rename = "certif_public", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34 pub certif_public: Option<Option<String>>,
35 #[serde(rename = "nids_sid", skip_serializing_if = "Option::is_none")]
36 pub nids_sid: Option<String>,
37 #[serde(rename = "termsaccepted", skip_serializing_if = "Option::is_none")]
38 pub termsaccepted: Option<bool>,
39 #[serde(rename = "newsread", skip_serializing_if = "Option::is_none")]
40 pub newsread: Option<String>,
41 #[serde(rename = "role_id", skip_serializing_if = "Option::is_none")]
42 pub role_id: Option<String>,
43 #[serde(rename = "change_pw", skip_serializing_if = "Option::is_none")]
45 pub change_pw: Option<ChangePw>,
46 #[serde(rename = "contactalert", skip_serializing_if = "Option::is_none")]
47 pub contactalert: Option<bool>,
48 #[serde(rename = "disabled", skip_serializing_if = "Option::is_none")]
49 pub disabled: Option<bool>,
50 #[serde(rename = "expiration", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
51 pub expiration: Option<Option<String>>,
52 #[serde(rename = "current_login", skip_serializing_if = "Option::is_none")]
53 pub current_login: Option<String>,
54 #[serde(rename = "last_login", skip_serializing_if = "Option::is_none")]
55 pub last_login: Option<String>,
56 #[serde(rename = "force_logout", skip_serializing_if = "Option::is_none")]
57 pub force_logout: Option<bool>,
58 #[serde(rename = "date_created", skip_serializing_if = "Option::is_none")]
59 pub date_created: Option<String>,
60 #[serde(rename = "date_modified", skip_serializing_if = "Option::is_none")]
61 pub date_modified: Option<String>,
62 #[serde(rename = "User", skip_serializing_if = "Option::is_none")]
63 pub user: Option<Box<models::User>>,
64 #[serde(rename = "Role", skip_serializing_if = "Option::is_none")]
65 pub role: Option<Box<models::Role>>,
66 #[serde(rename = "UserSetting", skip_serializing_if = "Option::is_none")]
67 pub user_setting: Option<Box<models::ViewUserSettings>>,
68}
69
70impl ExtendedUser {
71 pub fn new() -> ExtendedUser {
72 ExtendedUser {
73 id: None,
74 org_id: None,
75 server_id: None,
76 email: None,
77 autoalert: None,
78 authkey: None,
79 invited_by: None,
80 gpgkey: None,
81 certif_public: None,
82 nids_sid: None,
83 termsaccepted: None,
84 newsread: None,
85 role_id: None,
86 change_pw: None,
87 contactalert: None,
88 disabled: None,
89 expiration: None,
90 current_login: None,
91 last_login: None,
92 force_logout: None,
93 date_created: None,
94 date_modified: None,
95 user: None,
96 role: None,
97 user_setting: None,
98 }
99 }
100}
101#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
103pub enum ChangePw {
104 #[serde(rename = "0")]
105 Variant0,
106 #[serde(rename = "1")]
107 Variant1,
108}
109
110impl Default for ChangePw {
111 fn default() -> ChangePw {
112 Self::Variant0
113 }
114}
115