1#![allow(
14 missing_docs,
15 clippy::doc_lazy_continuation,
16 clippy::doc_overindented_list_items
17)]
18
19use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23pub struct CreateCustomMenuDTO {
24 pub title: String,
27 pub url: String,
30 pub icon: IconSchema,
33 #[serde(rename = "showOnCompany")]
36 pub show_on_company: bool,
37 #[serde(rename = "showOnLocation")]
40 pub show_on_location: bool,
41 #[serde(rename = "showToAllLocations")]
44 pub show_to_all_locations: bool,
45 #[serde(rename = "openMode")]
49 pub open_mode: String,
50 #[serde(default, skip_serializing_if = "Vec::is_empty")]
54 pub locations: Vec<String>,
55 #[serde(rename = "userRole")]
59 pub user_role: String,
60 #[serde(
62 rename = "allowCamera",
63 default,
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub allow_camera: Option<bool>,
67 #[serde(
69 rename = "allowMicrophone",
70 default,
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub allow_microphone: Option<bool>,
74}
75
76#[derive(Debug, Clone, Default, Serialize, Deserialize)]
78pub struct CustomMenuSchema {
79 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub id: Option<String>,
82 #[serde(default, skip_serializing_if = "Option::is_none")]
84 pub icon: Option<IconSchemaOptional>,
85 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub title: Option<String>,
88 #[serde(default, skip_serializing_if = "Option::is_none")]
90 pub url: Option<String>,
91 #[serde(default, skip_serializing_if = "Option::is_none")]
93 pub order: Option<f64>,
94 #[serde(
97 rename = "showOnCompany",
98 default,
99 skip_serializing_if = "Option::is_none"
100 )]
101 pub show_on_company: Option<bool>,
102 #[serde(
104 rename = "showOnLocation",
105 default,
106 skip_serializing_if = "Option::is_none"
107 )]
108 pub show_on_location: Option<bool>,
109 #[serde(
111 rename = "showToAllLocations",
112 default,
113 skip_serializing_if = "Option::is_none"
114 )]
115 pub show_to_all_locations: Option<bool>,
116 #[serde(default, skip_serializing_if = "Vec::is_empty")]
119 pub locations: Vec<String>,
120 #[serde(rename = "openMode", default, skip_serializing_if = "Option::is_none")]
123 pub open_mode: Option<String>,
124 #[serde(rename = "userRole", default, skip_serializing_if = "Option::is_none")]
127 pub user_role: Option<String>,
128 #[serde(
130 rename = "allowCamera",
131 default,
132 skip_serializing_if = "Option::is_none"
133 )]
134 pub allow_camera: Option<bool>,
135 #[serde(
137 rename = "allowMicrophone",
138 default,
139 skip_serializing_if = "Option::is_none"
140 )]
141 pub allow_microphone: Option<bool>,
142}
143
144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
146pub struct DeleteCustomMenuSuccessfulResponseDTO {
147 #[serde(default, skip_serializing_if = "Option::is_none")]
149 pub success: Option<bool>,
150 #[serde(default, skip_serializing_if = "Option::is_none")]
152 pub message: Option<String>,
153 #[serde(
155 rename = "deletedMenuId",
156 default,
157 skip_serializing_if = "Option::is_none"
158 )]
159 pub deleted_menu_id: Option<String>,
160 #[serde(rename = "deletedAt", default, skip_serializing_if = "Option::is_none")]
163 pub deleted_at: Option<String>,
164}
165
166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
168pub struct GetCustomMenusResponseDTO {
169 #[serde(rename = "customMenus", default, skip_serializing_if = "Vec::is_empty")]
171 pub custom_menus: Vec<CustomMenuSchema>,
172 #[serde(
174 rename = "totalLinks",
175 default,
176 skip_serializing_if = "Option::is_none"
177 )]
178 pub total_links: Option<f64>,
179}
180
181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
183pub struct GetSingleCustomMenusSuccessfulResponseDTO {
184 #[serde(
186 rename = "customMenu",
187 default,
188 skip_serializing_if = "Option::is_none"
189 )]
190 pub custom_menu: Option<CustomMenuSchema>,
191}
192
193#[derive(Debug, Clone, Default, Serialize, Deserialize)]
195pub struct IconSchema {
196 pub name: String,
199 #[serde(rename = "fontFamily")]
203 pub font_family: String,
204}
205
206#[derive(Debug, Clone, Default, Serialize, Deserialize)]
208pub struct IconSchemaOptional {
209 #[serde(default, skip_serializing_if = "Option::is_none")]
211 pub name: Option<String>,
212 #[serde(
215 rename = "fontFamily",
216 default,
217 skip_serializing_if = "Option::is_none"
218 )]
219 pub font_family: Option<String>,
220}
221
222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
224pub struct UpdateCustomMenuDTO {
225 #[serde(default, skip_serializing_if = "Option::is_none")]
227 pub title: Option<String>,
228 #[serde(default, skip_serializing_if = "Option::is_none")]
230 pub url: Option<String>,
231 #[serde(default, skip_serializing_if = "Option::is_none")]
233 pub icon: Option<IconSchemaOptional>,
234 #[serde(
236 rename = "showOnCompany",
237 default,
238 skip_serializing_if = "Option::is_none"
239 )]
240 pub show_on_company: Option<bool>,
241 #[serde(
243 rename = "showOnLocation",
244 default,
245 skip_serializing_if = "Option::is_none"
246 )]
247 pub show_on_location: Option<bool>,
248 #[serde(
250 rename = "showToAllLocations",
251 default,
252 skip_serializing_if = "Option::is_none"
253 )]
254 pub show_to_all_locations: Option<bool>,
255 #[serde(rename = "openMode", default, skip_serializing_if = "Option::is_none")]
258 pub open_mode: Option<String>,
259 #[serde(default, skip_serializing_if = "Vec::is_empty")]
262 pub locations: Vec<String>,
263 #[serde(rename = "userRole", default, skip_serializing_if = "Option::is_none")]
266 pub user_role: Option<String>,
267 #[serde(
269 rename = "allowCamera",
270 default,
271 skip_serializing_if = "Option::is_none"
272 )]
273 pub allow_camera: Option<bool>,
274 #[serde(
276 rename = "allowMicrophone",
277 default,
278 skip_serializing_if = "Option::is_none"
279 )]
280 pub allow_microphone: Option<bool>,
281}
282
283#[derive(Debug, Clone, Default, Serialize, Deserialize)]
285pub struct UpdateCustomMenuLinkResponseDTO {
286 #[serde(default, skip_serializing_if = "Option::is_none")]
288 pub success: Option<bool>,
289 #[serde(
291 rename = "customMenu",
292 default,
293 skip_serializing_if = "Option::is_none"
294 )]
295 pub custom_menu: Option<CustomMenuSchema>,
296}