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 CreateUserDto {
24 #[serde(rename = "companyId")]
26 pub company_id: String,
27 #[serde(rename = "firstName")]
29 pub first_name: String,
30 #[serde(rename = "lastName")]
32 pub last_name: String,
33 pub email: String,
35 pub password: String,
37 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub phone: Option<String>,
39 #[serde(rename = "type")]
41 pub type_: String,
42 pub role: String,
44 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
46 pub location_ids: Vec<String>,
47 #[serde(default, skip_serializing_if = "Option::is_none")]
48 pub permissions: Option<PermissionsDto>,
49 #[serde(default, skip_serializing_if = "Vec::is_empty")]
56 pub scopes: Vec<String>,
57 #[serde(
64 rename = "scopesAssignedToOnly",
65 default,
66 skip_serializing_if = "Vec::is_empty"
67 )]
68 pub scopes_assigned_to_only: Vec<String>,
69 #[serde(
70 rename = "profilePhoto",
71 default,
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub profile_photo: Option<String>,
75 #[serde(
83 rename = "twilioPhone",
84 default,
85 skip_serializing_if = "Option::is_none"
86 )]
87 pub twilio_phone: Option<serde_json::Value>,
88 #[serde(
92 rename = "platformLanguage",
93 default,
94 skip_serializing_if = "Option::is_none"
95 )]
96 pub platform_language: Option<String>,
97}
98
99#[derive(Debug, Clone, Default, Serialize, Deserialize)]
101pub struct DeleteUserSuccessfulResponseDto {
102 #[serde(default, skip_serializing_if = "Option::is_none")]
103 pub succeded: Option<bool>,
104 #[serde(default, skip_serializing_if = "Option::is_none")]
105 pub message: Option<String>,
106}
107
108#[derive(Debug, Clone, Default, Serialize, Deserialize)]
110pub struct FilterByEmailDto {
111 #[serde(rename = "companyId")]
114 pub company_id: String,
115 pub emails: String,
118 #[serde(default, skip_serializing_if = "Option::is_none")]
120 pub deleted: Option<bool>,
121 #[serde(default, skip_serializing_if = "Option::is_none")]
123 pub skip: Option<String>,
124 #[serde(default, skip_serializing_if = "Option::is_none")]
126 pub limit: Option<String>,
127 #[serde(default, skip_serializing_if = "Option::is_none")]
130 pub projection: Option<String>,
131}
132
133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
135pub struct LocationSuccessfulResponseDto {
136 #[serde(default, skip_serializing_if = "Vec::is_empty")]
137 pub users: Vec<UserSchema>,
138}
139
140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
142pub struct PermissionsDto {
143 #[serde(
144 rename = "campaignsEnabled",
145 default,
146 skip_serializing_if = "Option::is_none"
147 )]
148 pub campaigns_enabled: Option<bool>,
149 #[serde(
150 rename = "campaignsReadOnly",
151 default,
152 skip_serializing_if = "Option::is_none"
153 )]
154 pub campaigns_read_only: Option<bool>,
155 #[serde(
156 rename = "contactsEnabled",
157 default,
158 skip_serializing_if = "Option::is_none"
159 )]
160 pub contacts_enabled: Option<bool>,
161 #[serde(
162 rename = "workflowsEnabled",
163 default,
164 skip_serializing_if = "Option::is_none"
165 )]
166 pub workflows_enabled: Option<bool>,
167 #[serde(
168 rename = "workflowsReadOnly",
169 default,
170 skip_serializing_if = "Option::is_none"
171 )]
172 pub workflows_read_only: Option<bool>,
173 #[serde(
174 rename = "triggersEnabled",
175 default,
176 skip_serializing_if = "Option::is_none"
177 )]
178 pub triggers_enabled: Option<bool>,
179 #[serde(
180 rename = "funnelsEnabled",
181 default,
182 skip_serializing_if = "Option::is_none"
183 )]
184 pub funnels_enabled: Option<bool>,
185 #[serde(
186 rename = "websitesEnabled",
187 default,
188 skip_serializing_if = "Option::is_none"
189 )]
190 pub websites_enabled: Option<bool>,
191 #[serde(
192 rename = "opportunitiesEnabled",
193 default,
194 skip_serializing_if = "Option::is_none"
195 )]
196 pub opportunities_enabled: Option<bool>,
197 #[serde(
198 rename = "dashboardStatsEnabled",
199 default,
200 skip_serializing_if = "Option::is_none"
201 )]
202 pub dashboard_stats_enabled: Option<bool>,
203 #[serde(
204 rename = "bulkRequestsEnabled",
205 default,
206 skip_serializing_if = "Option::is_none"
207 )]
208 pub bulk_requests_enabled: Option<bool>,
209 #[serde(
210 rename = "appointmentsEnabled",
211 default,
212 skip_serializing_if = "Option::is_none"
213 )]
214 pub appointments_enabled: Option<bool>,
215 #[serde(
216 rename = "reviewsEnabled",
217 default,
218 skip_serializing_if = "Option::is_none"
219 )]
220 pub reviews_enabled: Option<bool>,
221 #[serde(
222 rename = "onlineListingsEnabled",
223 default,
224 skip_serializing_if = "Option::is_none"
225 )]
226 pub online_listings_enabled: Option<bool>,
227 #[serde(
228 rename = "phoneCallEnabled",
229 default,
230 skip_serializing_if = "Option::is_none"
231 )]
232 pub phone_call_enabled: Option<bool>,
233 #[serde(
234 rename = "conversationsEnabled",
235 default,
236 skip_serializing_if = "Option::is_none"
237 )]
238 pub conversations_enabled: Option<bool>,
239 #[serde(
240 rename = "assignedDataOnly",
241 default,
242 skip_serializing_if = "Option::is_none"
243 )]
244 pub assigned_data_only: Option<bool>,
245 #[serde(
246 rename = "adwordsReportingEnabled",
247 default,
248 skip_serializing_if = "Option::is_none"
249 )]
250 pub adwords_reporting_enabled: Option<bool>,
251 #[serde(
252 rename = "membershipEnabled",
253 default,
254 skip_serializing_if = "Option::is_none"
255 )]
256 pub membership_enabled: Option<bool>,
257 #[serde(
258 rename = "facebookAdsReportingEnabled",
259 default,
260 skip_serializing_if = "Option::is_none"
261 )]
262 pub facebook_ads_reporting_enabled: Option<bool>,
263 #[serde(
264 rename = "attributionsReportingEnabled",
265 default,
266 skip_serializing_if = "Option::is_none"
267 )]
268 pub attributions_reporting_enabled: Option<bool>,
269 #[serde(
270 rename = "settingsEnabled",
271 default,
272 skip_serializing_if = "Option::is_none"
273 )]
274 pub settings_enabled: Option<bool>,
275 #[serde(
276 rename = "tagsEnabled",
277 default,
278 skip_serializing_if = "Option::is_none"
279 )]
280 pub tags_enabled: Option<bool>,
281 #[serde(
282 rename = "leadValueEnabled",
283 default,
284 skip_serializing_if = "Option::is_none"
285 )]
286 pub lead_value_enabled: Option<bool>,
287 #[serde(
288 rename = "marketingEnabled",
289 default,
290 skip_serializing_if = "Option::is_none"
291 )]
292 pub marketing_enabled: Option<bool>,
293 #[serde(
294 rename = "agentReportingEnabled",
295 default,
296 skip_serializing_if = "Option::is_none"
297 )]
298 pub agent_reporting_enabled: Option<bool>,
299 #[serde(
300 rename = "botService",
301 default,
302 skip_serializing_if = "Option::is_none"
303 )]
304 pub bot_service: Option<bool>,
305 #[serde(
306 rename = "socialPlanner",
307 default,
308 skip_serializing_if = "Option::is_none"
309 )]
310 pub social_planner: Option<bool>,
311 #[serde(
312 rename = "bloggingEnabled",
313 default,
314 skip_serializing_if = "Option::is_none"
315 )]
316 pub blogging_enabled: Option<bool>,
317 #[serde(
318 rename = "invoiceEnabled",
319 default,
320 skip_serializing_if = "Option::is_none"
321 )]
322 pub invoice_enabled: Option<bool>,
323 #[serde(
324 rename = "affiliateManagerEnabled",
325 default,
326 skip_serializing_if = "Option::is_none"
327 )]
328 pub affiliate_manager_enabled: Option<bool>,
329 #[serde(
330 rename = "contentAiEnabled",
331 default,
332 skip_serializing_if = "Option::is_none"
333 )]
334 pub content_ai_enabled: Option<bool>,
335 #[serde(
336 rename = "refundsEnabled",
337 default,
338 skip_serializing_if = "Option::is_none"
339 )]
340 pub refunds_enabled: Option<bool>,
341 #[serde(
342 rename = "recordPaymentEnabled",
343 default,
344 skip_serializing_if = "Option::is_none"
345 )]
346 pub record_payment_enabled: Option<bool>,
347 #[serde(
348 rename = "cancelSubscriptionEnabled",
349 default,
350 skip_serializing_if = "Option::is_none"
351 )]
352 pub cancel_subscription_enabled: Option<bool>,
353 #[serde(
354 rename = "paymentsEnabled",
355 default,
356 skip_serializing_if = "Option::is_none"
357 )]
358 pub payments_enabled: Option<bool>,
359 #[serde(
360 rename = "communitiesEnabled",
361 default,
362 skip_serializing_if = "Option::is_none"
363 )]
364 pub communities_enabled: Option<bool>,
365 #[serde(
366 rename = "exportPaymentsEnabled",
367 default,
368 skip_serializing_if = "Option::is_none"
369 )]
370 pub export_payments_enabled: Option<bool>,
371}
372
373#[derive(Debug, Clone, Default, Serialize, Deserialize)]
375pub struct RoleSchema {
376 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
377 pub type_: Option<String>,
378 #[serde(default, skip_serializing_if = "Option::is_none")]
379 pub role: Option<String>,
380 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
381 pub location_ids: Vec<String>,
382 #[serde(
383 rename = "restrictSubAccount",
384 default,
385 skip_serializing_if = "Option::is_none"
386 )]
387 pub restrict_sub_account: Option<bool>,
388}
389
390#[derive(Debug, Clone, Default, Serialize, Deserialize)]
392pub struct SearchUserSuccessfulResponseDto {
393 #[serde(default, skip_serializing_if = "Vec::is_empty")]
394 pub users: Vec<UserSchema>,
395 #[serde(default, skip_serializing_if = "Option::is_none")]
396 pub count: Option<f64>,
397}
398
399#[derive(Debug, Clone, Default, Serialize, Deserialize)]
401pub struct UpdateUserDto {
402 #[serde(rename = "firstName", default, skip_serializing_if = "Option::is_none")]
403 pub first_name: Option<String>,
404 #[serde(rename = "lastName", default, skip_serializing_if = "Option::is_none")]
405 pub last_name: Option<String>,
406 #[serde(default, skip_serializing_if = "Option::is_none")]
408 pub email: Option<String>,
409 #[serde(default, skip_serializing_if = "Option::is_none")]
410 pub password: Option<String>,
411 #[serde(default, skip_serializing_if = "Option::is_none")]
412 pub phone: Option<String>,
413 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
414 pub type_: Option<String>,
415 #[serde(default, skip_serializing_if = "Option::is_none")]
416 pub role: Option<String>,
417 #[serde(rename = "companyId", default, skip_serializing_if = "Option::is_none")]
419 pub company_id: Option<String>,
420 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
421 pub location_ids: Vec<String>,
422 #[serde(default, skip_serializing_if = "Option::is_none")]
423 pub permissions: Option<PermissionsDto>,
424 #[serde(default, skip_serializing_if = "Vec::is_empty")]
431 pub scopes: Vec<String>,
432 #[serde(
439 rename = "scopesAssignedToOnly",
440 default,
441 skip_serializing_if = "Vec::is_empty"
442 )]
443 pub scopes_assigned_to_only: Vec<String>,
444 #[serde(
445 rename = "profilePhoto",
446 default,
447 skip_serializing_if = "Option::is_none"
448 )]
449 pub profile_photo: Option<String>,
450 #[serde(
458 rename = "twilioPhone",
459 default,
460 skip_serializing_if = "Option::is_none"
461 )]
462 pub twilio_phone: Option<serde_json::Value>,
463 #[serde(
467 rename = "platformLanguage",
468 default,
469 skip_serializing_if = "Option::is_none"
470 )]
471 pub platform_language: Option<String>,
472}
473
474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
476pub struct UserSchema {
477 #[serde(default, skip_serializing_if = "Option::is_none")]
478 pub id: Option<String>,
479 #[serde(default, skip_serializing_if = "Option::is_none")]
480 pub name: Option<String>,
481 #[serde(rename = "firstName", default, skip_serializing_if = "Option::is_none")]
482 pub first_name: Option<String>,
483 #[serde(rename = "lastName", default, skip_serializing_if = "Option::is_none")]
484 pub last_name: Option<String>,
485 #[serde(default, skip_serializing_if = "Option::is_none")]
486 pub email: Option<String>,
487 #[serde(default, skip_serializing_if = "Option::is_none")]
488 pub phone: Option<String>,
489 #[serde(default, skip_serializing_if = "Option::is_none")]
490 pub extension: Option<String>,
491 #[serde(default, skip_serializing_if = "Option::is_none")]
492 pub permissions: Option<PermissionsDto>,
493 #[serde(default, skip_serializing_if = "Option::is_none")]
498 pub scopes: Option<String>,
499 #[serde(default, skip_serializing_if = "Option::is_none")]
500 pub roles: Option<RoleSchema>,
501 #[serde(default, skip_serializing_if = "Option::is_none")]
502 pub deleted: Option<bool>,
503 #[serde(rename = "lcPhone", default, skip_serializing_if = "Option::is_none")]
505 pub lc_phone: Option<serde_json::Value>,
506 #[serde(
510 rename = "platformLanguage",
511 default,
512 skip_serializing_if = "Option::is_none"
513 )]
514 pub platform_language: Option<String>,
515}
516
517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
519pub struct UserSuccessfulResponseDto {
520 #[serde(default, skip_serializing_if = "Option::is_none")]
521 pub id: Option<String>,
522 #[serde(default, skip_serializing_if = "Option::is_none")]
523 pub name: Option<String>,
524 #[serde(rename = "firstName", default, skip_serializing_if = "Option::is_none")]
525 pub first_name: Option<String>,
526 #[serde(rename = "lastName", default, skip_serializing_if = "Option::is_none")]
527 pub last_name: Option<String>,
528 #[serde(default, skip_serializing_if = "Option::is_none")]
529 pub email: Option<String>,
530 #[serde(default, skip_serializing_if = "Option::is_none")]
531 pub phone: Option<String>,
532 #[serde(default, skip_serializing_if = "Option::is_none")]
533 pub extension: Option<String>,
534 #[serde(default, skip_serializing_if = "Option::is_none")]
535 pub permissions: Option<PermissionsDto>,
536 #[serde(default, skip_serializing_if = "Option::is_none")]
541 pub scopes: Option<String>,
542 #[serde(default, skip_serializing_if = "Option::is_none")]
543 pub roles: Option<RoleSchema>,
544 #[serde(rename = "lcPhone", default, skip_serializing_if = "Option::is_none")]
546 pub lc_phone: Option<serde_json::Value>,
547 #[serde(
551 rename = "platformLanguage",
552 default,
553 skip_serializing_if = "Option::is_none"
554 )]
555 pub platform_language: Option<String>,
556}