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