1use super::present;
2use serde::{Deserialize, Serialize};
3#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
4#[serde(deny_unknown_fields, rename_all = "camelCase")]
5pub struct GlobalSettingsDocument {
6 #[serde(default, deserialize_with = "present")]
7 #[serde(rename = "_id")]
8 pub settings_id: Option<String>,
9 pub disable_registration: Option<bool>,
10 pub disable_forgot_password: Option<bool>,
11 pub product_name: Option<String>,
12 pub display_authentication_method: Option<bool>,
13 #[serde(default, deserialize_with = "present")]
14 pub default_authentication_method: Option<String>,
15 pub spinner_name: Option<String>,
16 pub hide_logo: Option<bool>,
17 pub hide_card_counter_list: Option<bool>,
18 pub hide_board_member_list: Option<bool>,
19 pub custom_login_logo_image_url: Option<String>,
20 pub custom_login_logo_link_url: Option<String>,
21 pub custom_help_link_url: Option<String>,
22 pub text_below_custom_login_logo: Option<String>,
23 pub automatic_linked_url_schemes: Option<String>,
24 pub custom_top_left_corner_logo_image_url: Option<String>,
25 pub custom_top_left_corner_logo_link_url: Option<String>,
26 pub custom_top_left_corner_logo_height: Option<String>,
27 pub oidc_btn_text: Option<String>,
28 pub mail_domain_name: Option<String>,
29 pub legal_notice: Option<String>,
30 pub custom_head_enabled: Option<bool>,
31 pub custom_head_meta_tags: Option<String>,
32 pub custom_head_link_tags: Option<String>,
33 pub custom_manifest_enabled: Option<bool>,
34 pub custom_manifest_content: Option<String>,
35 pub custom_asset_links_enabled: Option<bool>,
36 pub custom_asset_links_content: Option<String>,
37 pub accessibility_page_enabled: Option<bool>,
38 pub accessibility_title: Option<String>,
39 pub accessibility_content: Option<String>,
40 pub support_popup_text: Option<String>,
41 pub support_page_enabled: Option<bool>,
42 pub support_page_public: Option<bool>,
43 pub support_title: Option<String>,
44 pub support_page_text: Option<String>,
45}
46
47#[derive(Clone, Debug, Default, Deserialize, Serialize)]
48#[serde(deny_unknown_fields, rename_all = "camelCase")]
49pub struct UpdateGlobalSettings {
50 #[serde(
51 default,
52 deserialize_with = "present_nullable",
53 skip_serializing_if = "Option::is_none"
54 )]
55 pub disable_registration: Option<Option<bool>>,
56 #[serde(
57 default,
58 deserialize_with = "present_nullable",
59 skip_serializing_if = "Option::is_none"
60 )]
61 pub disable_forgot_password: Option<Option<bool>>,
62 #[serde(
63 default,
64 deserialize_with = "present_nullable",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub product_name: Option<Option<String>>,
68 #[serde(
69 default,
70 deserialize_with = "present_nullable",
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub display_authentication_method: Option<Option<bool>>,
74 #[serde(
75 default,
76 deserialize_with = "present",
77 skip_serializing_if = "Option::is_none"
78 )]
79 pub default_authentication_method: Option<String>,
80 #[serde(
81 default,
82 deserialize_with = "present_nullable",
83 skip_serializing_if = "Option::is_none"
84 )]
85 pub spinner_name: Option<Option<String>>,
86 #[serde(
87 default,
88 deserialize_with = "present_nullable",
89 skip_serializing_if = "Option::is_none"
90 )]
91 pub hide_logo: Option<Option<bool>>,
92 #[serde(
93 default,
94 deserialize_with = "present_nullable",
95 skip_serializing_if = "Option::is_none"
96 )]
97 pub hide_card_counter_list: Option<Option<bool>>,
98 #[serde(
99 default,
100 deserialize_with = "present_nullable",
101 skip_serializing_if = "Option::is_none"
102 )]
103 pub hide_board_member_list: Option<Option<bool>>,
104 #[serde(
105 default,
106 deserialize_with = "present_nullable",
107 skip_serializing_if = "Option::is_none"
108 )]
109 pub custom_login_logo_image_url: Option<Option<String>>,
110 #[serde(
111 default,
112 deserialize_with = "present_nullable",
113 skip_serializing_if = "Option::is_none"
114 )]
115 pub custom_login_logo_link_url: Option<Option<String>>,
116 #[serde(
117 default,
118 deserialize_with = "present_nullable",
119 skip_serializing_if = "Option::is_none"
120 )]
121 pub custom_help_link_url: Option<Option<String>>,
122 #[serde(
123 default,
124 deserialize_with = "present_nullable",
125 skip_serializing_if = "Option::is_none"
126 )]
127 pub text_below_custom_login_logo: Option<Option<String>>,
128 #[serde(
129 default,
130 deserialize_with = "present_nullable",
131 skip_serializing_if = "Option::is_none"
132 )]
133 pub automatic_linked_url_schemes: Option<Option<String>>,
134 #[serde(
135 default,
136 deserialize_with = "present_nullable",
137 skip_serializing_if = "Option::is_none"
138 )]
139 pub custom_top_left_corner_logo_image_url: Option<Option<String>>,
140 #[serde(
141 default,
142 deserialize_with = "present_nullable",
143 skip_serializing_if = "Option::is_none"
144 )]
145 pub custom_top_left_corner_logo_link_url: Option<Option<String>>,
146 #[serde(
147 default,
148 deserialize_with = "present_nullable",
149 skip_serializing_if = "Option::is_none"
150 )]
151 pub custom_top_left_corner_logo_height: Option<Option<String>>,
152 #[serde(
153 default,
154 deserialize_with = "present_nullable",
155 skip_serializing_if = "Option::is_none"
156 )]
157 pub oidc_btn_text: Option<Option<String>>,
158 #[serde(
159 default,
160 deserialize_with = "present_nullable",
161 skip_serializing_if = "Option::is_none"
162 )]
163 pub mail_domain_name: Option<Option<String>>,
164 #[serde(
165 default,
166 deserialize_with = "present_nullable",
167 skip_serializing_if = "Option::is_none"
168 )]
169 pub legal_notice: Option<Option<String>>,
170 #[serde(
171 default,
172 deserialize_with = "present_nullable",
173 skip_serializing_if = "Option::is_none"
174 )]
175 pub custom_head_enabled: Option<Option<bool>>,
176 #[serde(
177 default,
178 deserialize_with = "present_nullable",
179 skip_serializing_if = "Option::is_none"
180 )]
181 pub custom_head_meta_tags: Option<Option<String>>,
182 #[serde(
183 default,
184 deserialize_with = "present_nullable",
185 skip_serializing_if = "Option::is_none"
186 )]
187 pub custom_head_link_tags: Option<Option<String>>,
188 #[serde(
189 default,
190 deserialize_with = "present_nullable",
191 skip_serializing_if = "Option::is_none"
192 )]
193 pub custom_manifest_enabled: Option<Option<bool>>,
194 #[serde(
195 default,
196 deserialize_with = "present_nullable",
197 skip_serializing_if = "Option::is_none"
198 )]
199 pub custom_manifest_content: Option<Option<String>>,
200 #[serde(
201 default,
202 deserialize_with = "present_nullable",
203 skip_serializing_if = "Option::is_none"
204 )]
205 pub custom_asset_links_enabled: Option<Option<bool>>,
206 #[serde(
207 default,
208 deserialize_with = "present_nullable",
209 skip_serializing_if = "Option::is_none"
210 )]
211 pub custom_asset_links_content: Option<Option<String>>,
212 #[serde(
213 default,
214 deserialize_with = "present_nullable",
215 skip_serializing_if = "Option::is_none"
216 )]
217 pub accessibility_page_enabled: Option<Option<bool>>,
218 #[serde(
219 default,
220 deserialize_with = "present_nullable",
221 skip_serializing_if = "Option::is_none"
222 )]
223 pub accessibility_title: Option<Option<String>>,
224 #[serde(
225 default,
226 deserialize_with = "present_nullable",
227 skip_serializing_if = "Option::is_none"
228 )]
229 pub accessibility_content: Option<Option<String>>,
230 #[serde(
231 default,
232 deserialize_with = "present_nullable",
233 skip_serializing_if = "Option::is_none"
234 )]
235 pub support_popup_text: Option<Option<String>>,
236 #[serde(
237 default,
238 deserialize_with = "present_nullable",
239 skip_serializing_if = "Option::is_none"
240 )]
241 pub support_page_enabled: Option<Option<bool>>,
242 #[serde(
243 default,
244 deserialize_with = "present_nullable",
245 skip_serializing_if = "Option::is_none"
246 )]
247 pub support_page_public: Option<Option<bool>>,
248 #[serde(
249 default,
250 deserialize_with = "present_nullable",
251 skip_serializing_if = "Option::is_none"
252 )]
253 pub support_title: Option<Option<String>>,
254 #[serde(
255 default,
256 deserialize_with = "present_nullable",
257 skip_serializing_if = "Option::is_none"
258 )]
259 pub support_page_text: Option<Option<String>>,
260}
261
262fn present_nullable<'de, D: serde::Deserializer<'de>, T: serde::Deserialize<'de>>(
263 d: D,
264) -> Result<Option<Option<T>>, D::Error> {
265 Option::<T>::deserialize(d).map(Some)
266}