1#![allow(
6 missing_docs,
7 clippy::doc_lazy_continuation,
8 clippy::doc_overindented_list_items
9)]
10
11use serde::{Deserialize, Serialize};
12
13#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15pub struct CreateCustomMenuDTO {
16 pub title: String,
19 pub url: String,
22 pub icon: IconSchema,
25 #[serde(rename = "showOnCompany")]
28 pub show_on_company: bool,
29 #[serde(rename = "showOnLocation")]
32 pub show_on_location: bool,
33 #[serde(rename = "showToAllLocations")]
36 pub show_to_all_locations: bool,
37 #[serde(rename = "openMode")]
41 pub open_mode: String,
42 #[serde(default, skip_serializing_if = "Vec::is_empty")]
46 pub locations: Vec<String>,
47 #[serde(rename = "userRole")]
51 pub user_role: String,
52 #[serde(
54 rename = "allowCamera",
55 default,
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub allow_camera: Option<bool>,
59 #[serde(
61 rename = "allowMicrophone",
62 default,
63 skip_serializing_if = "Option::is_none"
64 )]
65 pub allow_microphone: Option<bool>,
66}
67
68#[derive(Debug, Clone, Default, Serialize, Deserialize)]
70pub struct CustomMenuSchema {
71 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub id: Option<String>,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub icon: Option<IconSchemaOptional>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub title: Option<String>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub url: Option<String>,
83 #[serde(default, skip_serializing_if = "Option::is_none")]
85 pub order: Option<f64>,
86 #[serde(
89 rename = "showOnCompany",
90 default,
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub show_on_company: Option<bool>,
94 #[serde(
96 rename = "showOnLocation",
97 default,
98 skip_serializing_if = "Option::is_none"
99 )]
100 pub show_on_location: Option<bool>,
101 #[serde(
103 rename = "showToAllLocations",
104 default,
105 skip_serializing_if = "Option::is_none"
106 )]
107 pub show_to_all_locations: Option<bool>,
108 #[serde(default, skip_serializing_if = "Vec::is_empty")]
111 pub locations: Vec<String>,
112 #[serde(rename = "openMode", default, skip_serializing_if = "Option::is_none")]
115 pub open_mode: Option<String>,
116 #[serde(rename = "userRole", default, skip_serializing_if = "Option::is_none")]
119 pub user_role: Option<String>,
120 #[serde(
122 rename = "allowCamera",
123 default,
124 skip_serializing_if = "Option::is_none"
125 )]
126 pub allow_camera: Option<bool>,
127 #[serde(
129 rename = "allowMicrophone",
130 default,
131 skip_serializing_if = "Option::is_none"
132 )]
133 pub allow_microphone: Option<bool>,
134}
135
136#[derive(Debug, Clone, Default, Serialize, Deserialize)]
138pub struct DeleteCustomMenuSuccessfulResponseDTO {
139 #[serde(default, skip_serializing_if = "Option::is_none")]
141 pub success: Option<bool>,
142 #[serde(default, skip_serializing_if = "Option::is_none")]
144 pub message: Option<String>,
145 #[serde(
147 rename = "deletedMenuId",
148 default,
149 skip_serializing_if = "Option::is_none"
150 )]
151 pub deleted_menu_id: Option<String>,
152 #[serde(rename = "deletedAt", default, skip_serializing_if = "Option::is_none")]
155 pub deleted_at: Option<String>,
156}
157
158#[derive(Debug, Clone, Default, Serialize, Deserialize)]
160pub struct GetCustomMenusResponseDTO {
161 #[serde(rename = "customMenus", default, skip_serializing_if = "Vec::is_empty")]
163 pub custom_menus: Vec<CustomMenuSchema>,
164 #[serde(
166 rename = "totalLinks",
167 default,
168 skip_serializing_if = "Option::is_none"
169 )]
170 pub total_links: Option<f64>,
171}
172
173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
175pub struct GetSingleCustomMenusSuccessfulResponseDTO {
176 #[serde(
178 rename = "customMenu",
179 default,
180 skip_serializing_if = "Option::is_none"
181 )]
182 pub custom_menu: Option<CustomMenuSchema>,
183}
184
185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
187pub struct IconSchema {
188 pub name: String,
191 #[serde(rename = "fontFamily")]
195 pub font_family: String,
196}
197
198#[derive(Debug, Clone, Default, Serialize, Deserialize)]
200pub struct IconSchemaOptional {
201 #[serde(default, skip_serializing_if = "Option::is_none")]
203 pub name: Option<String>,
204 #[serde(
207 rename = "fontFamily",
208 default,
209 skip_serializing_if = "Option::is_none"
210 )]
211 pub font_family: Option<String>,
212}
213
214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
216pub struct UpdateCustomMenuDTO {
217 #[serde(default, skip_serializing_if = "Option::is_none")]
219 pub title: Option<String>,
220 #[serde(default, skip_serializing_if = "Option::is_none")]
222 pub url: Option<String>,
223 #[serde(default, skip_serializing_if = "Option::is_none")]
225 pub icon: Option<IconSchemaOptional>,
226 #[serde(
228 rename = "showOnCompany",
229 default,
230 skip_serializing_if = "Option::is_none"
231 )]
232 pub show_on_company: Option<bool>,
233 #[serde(
235 rename = "showOnLocation",
236 default,
237 skip_serializing_if = "Option::is_none"
238 )]
239 pub show_on_location: Option<bool>,
240 #[serde(
242 rename = "showToAllLocations",
243 default,
244 skip_serializing_if = "Option::is_none"
245 )]
246 pub show_to_all_locations: Option<bool>,
247 #[serde(rename = "openMode", default, skip_serializing_if = "Option::is_none")]
250 pub open_mode: Option<String>,
251 #[serde(default, skip_serializing_if = "Vec::is_empty")]
254 pub locations: Vec<String>,
255 #[serde(rename = "userRole", default, skip_serializing_if = "Option::is_none")]
258 pub user_role: Option<String>,
259 #[serde(
261 rename = "allowCamera",
262 default,
263 skip_serializing_if = "Option::is_none"
264 )]
265 pub allow_camera: Option<bool>,
266 #[serde(
268 rename = "allowMicrophone",
269 default,
270 skip_serializing_if = "Option::is_none"
271 )]
272 pub allow_microphone: Option<bool>,
273}
274
275#[derive(Debug, Clone, Default, Serialize, Deserialize)]
277pub struct UpdateCustomMenuLinkResponseDTO {
278 #[serde(default, skip_serializing_if = "Option::is_none")]
280 pub success: Option<bool>,
281 #[serde(
283 rename = "customMenu",
284 default,
285 skip_serializing_if = "Option::is_none"
286 )]
287 pub custom_menu: Option<CustomMenuSchema>,
288}