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 AgencyPlanResponseDto {
24 #[serde(rename = "planId", default, skip_serializing_if = "Option::is_none")]
28 pub plan_id: Option<String>,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub title: Option<String>,
34 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub description: Option<String>,
39 #[serde(
43 rename = "saasProducts",
44 default,
45 skip_serializing_if = "Vec::is_empty"
46 )]
47 pub saas_products: Vec<String>,
48 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
50 pub add_ons: Vec<String>,
51 #[serde(rename = "planLevel", default, skip_serializing_if = "Option::is_none")]
55 pub plan_level: Option<f64>,
56 #[serde(
60 rename = "trialPeriod",
61 default,
62 skip_serializing_if = "Option::is_none"
63 )]
64 pub trial_period: Option<f64>,
65 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
67 pub user_limit: Option<f64>,
68 #[serde(
70 rename = "contactLimit",
71 default,
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub contact_limit: Option<f64>,
75 #[serde(default, skip_serializing_if = "Vec::is_empty")]
80 pub prices: Vec<serde_json::Value>,
81 #[serde(
83 rename = "categoryId",
84 default,
85 skip_serializing_if = "Option::is_none"
86 )]
87 pub category_id: Option<String>,
88 #[serde(
90 rename = "snapshotId",
91 default,
92 skip_serializing_if = "Option::is_none"
93 )]
94 pub snapshot_id: Option<String>,
95 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
97 pub product_id: Option<String>,
98 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
102 pub is_saa_sv2: Option<bool>,
103 #[serde(
105 rename = "providerLocationId",
106 default,
107 skip_serializing_if = "Option::is_none"
108 )]
109 pub provider_location_id: Option<String>,
110 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
114 pub created_at: Option<String>,
115 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
119 pub updated_at: Option<String>,
120}
121
122#[derive(Debug, Clone, Default, Serialize, Deserialize)]
124pub struct AllowAttachRebillingDto {
125 #[serde(rename = "companyId")]
128 pub company_id: String,
129 #[serde(
136 rename = "attachedRebillingConfig",
137 default,
138 skip_serializing_if = "Option::is_none"
139 )]
140 pub attached_rebilling_config: Option<serde_json::Value>,
141}
142
143#[derive(Debug, Clone, Default, Serialize, Deserialize)]
145pub struct AllowAttachRebillingResponseDto {
146 #[serde(default, skip_serializing_if = "Option::is_none")]
150 pub success: Option<bool>,
151 #[serde(
155 rename = "locationId",
156 default,
157 skip_serializing_if = "Option::is_none"
158 )]
159 pub location_id: Option<String>,
160 #[serde(
165 rename = "attachedRebillingConfig",
166 default,
167 skip_serializing_if = "Option::is_none"
168 )]
169 pub attached_rebilling_config: Option<serde_json::Value>,
170}
171
172#[derive(Debug, Clone, Default, Serialize, Deserialize)]
174pub struct AttachedRebillingProductConfigDto {
175 pub enabled: bool,
178 pub markup: f64,
181 #[serde(default, skip_serializing_if = "Option::is_none")]
183 pub price: Option<f64>,
184}
185
186#[derive(Debug, Clone, Default, Serialize, Deserialize)]
188pub struct BadRequestDTO {
189 #[serde(
191 rename = "statusCode",
192 default,
193 skip_serializing_if = "Option::is_none"
194 )]
195 pub status_code: Option<f64>,
196 #[serde(default, skip_serializing_if = "Option::is_none")]
198 pub message: Option<String>,
199}
200
201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
203pub struct BulkDisableSaasDto {
204 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
207 pub location_ids: Vec<String>,
208}
209
210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
212pub struct BulkDisableSaasResponseDto {
213 #[serde(default, skip_serializing_if = "Option::is_none")]
217 pub data: Option<serde_json::Value>,
218}
219
220#[derive(Debug, Clone, Default, Serialize, Deserialize)]
222pub struct BulkEnableSaasActionPayloadDto {
223 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
225 pub price_id: Option<String>,
226 #[serde(
228 rename = "stripeAccountId",
229 default,
230 skip_serializing_if = "Option::is_none"
231 )]
232 pub stripe_account_id: Option<String>,
233 #[serde(rename = "saasPlanId")]
236 pub saas_plan_id: String,
237 #[serde(
239 rename = "providerLocationId",
240 default,
241 skip_serializing_if = "Option::is_none"
242 )]
243 pub provider_location_id: Option<String>,
244}
245
246#[derive(Debug, Clone, Default, Serialize, Deserialize)]
248pub struct BulkEnableSaasRequestDto {
249 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
252 pub location_ids: Vec<String>,
253 #[serde(rename = "isSaaSV2")]
256 pub is_saa_sv2: bool,
257 #[serde(rename = "actionPayload")]
260 pub action_payload: BulkEnableSaasActionPayloadDto,
261}
262
263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
265pub struct BulkEnableSaasResponseDto {
266 #[serde(default, skip_serializing_if = "Option::is_none")]
270 pub success: Option<bool>,
271 #[serde(default, skip_serializing_if = "Option::is_none")]
275 pub message: Option<String>,
276 #[serde(
278 rename = "bulkActionUrl",
279 default,
280 skip_serializing_if = "Option::is_none"
281 )]
282 pub bulk_action_url: Option<String>,
283}
284
285#[derive(Debug, Clone, Default, Serialize, Deserialize)]
287pub struct ComplimentaryCreditDTO {
288 #[serde(
290 rename = "complimentaryCreditsAmount",
291 default,
292 skip_serializing_if = "Option::is_none"
293 )]
294 pub complimentary_credits_amount: Option<f64>,
295}
296
297#[derive(Debug, Clone, Default, Serialize, Deserialize)]
299pub struct EnableSaasDto {
300 #[serde(
302 rename = "stripeAccountId",
303 default,
304 skip_serializing_if = "Option::is_none"
305 )]
306 pub stripe_account_id: Option<String>,
307 #[serde(default, skip_serializing_if = "Option::is_none")]
309 pub name: Option<String>,
310 #[serde(default, skip_serializing_if = "Option::is_none")]
312 pub email: Option<String>,
313 #[serde(
315 rename = "stripeCustomerId",
316 default,
317 skip_serializing_if = "Option::is_none"
318 )]
319 pub stripe_customer_id: Option<String>,
320 #[serde(rename = "companyId")]
322 pub company_id: String,
323 #[serde(rename = "isSaaSV2")]
326 pub is_saa_sv2: bool,
327 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
329 pub contact_id: Option<String>,
330 #[serde(
332 rename = "providerLocationId",
333 default,
334 skip_serializing_if = "Option::is_none"
335 )]
336 pub provider_location_id: Option<String>,
337 #[serde(default, skip_serializing_if = "Option::is_none")]
339 pub description: Option<String>,
340 #[serde(
342 rename = "saasPlanId",
343 default,
344 skip_serializing_if = "Option::is_none"
345 )]
346 pub saas_plan_id: Option<String>,
347 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
349 pub price_id: Option<String>,
350}
351
352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
354pub struct EnableSaasResponseDto {
355 #[serde(default, skip_serializing_if = "Option::is_none")]
359 pub data: Option<serde_json::Value>,
360}
361
362#[derive(Debug, Clone, Default, Serialize, Deserialize)]
364pub struct GetSaasLocationsResponseDto {
365 #[serde(default, skip_serializing_if = "Vec::is_empty")]
369 pub locations: Vec<SaasLocationDto>,
370 #[serde(default, skip_serializing_if = "Option::is_none")]
374 pub pagination: Option<serde_json::Value>,
375}
376
377#[derive(Debug, Clone, Default, Serialize, Deserialize)]
379pub struct InternalServerErrorDTO {
380 #[serde(
382 rename = "statusCode",
383 default,
384 skip_serializing_if = "Option::is_none"
385 )]
386 pub status_code: Option<f64>,
387 #[serde(default, skip_serializing_if = "Option::is_none")]
389 pub message: Option<String>,
390}
391
392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
394pub struct LocationSubscriptionResponseDto {
395 #[serde(
399 rename = "locationId",
400 default,
401 skip_serializing_if = "Option::is_none"
402 )]
403 pub location_id: Option<String>,
404 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
408 pub is_saa_sv2: Option<bool>,
409 #[serde(rename = "companyId", default, skip_serializing_if = "Option::is_none")]
413 pub company_id: Option<String>,
414 #[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
416 pub saas_mode: Option<String>,
417 #[serde(
419 rename = "subscriptionId",
420 default,
421 skip_serializing_if = "Option::is_none"
422 )]
423 pub subscription_id: Option<String>,
424 #[serde(
426 rename = "customerId",
427 default,
428 skip_serializing_if = "Option::is_none"
429 )]
430 pub customer_id: Option<String>,
431 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
433 pub product_id: Option<String>,
434 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
436 pub price_id: Option<String>,
437 #[serde(
439 rename = "saasPlanId",
440 default,
441 skip_serializing_if = "Option::is_none"
442 )]
443 pub saas_plan_id: Option<String>,
444 #[serde(
446 rename = "subscriptionStatus",
447 default,
448 skip_serializing_if = "Option::is_none"
449 )]
450 pub subscription_status: Option<String>,
451}
452
453#[derive(Debug, Clone, Default, Serialize, Deserialize)]
455pub struct LocationWalletBalanceDto {
456 #[serde(rename = "walletId", default, skip_serializing_if = "Option::is_none")]
460 pub wallet_id: Option<String>,
461 #[serde(default, skip_serializing_if = "Option::is_none")]
465 pub balance: Option<f64>,
466 #[serde(
470 rename = "complimentaryCredits",
471 default,
472 skip_serializing_if = "Option::is_none"
473 )]
474 pub complimentary_credits: Option<f64>,
475}
476
477#[derive(Debug, Clone, Default, Serialize, Deserialize)]
479pub struct PauseLocationDto {
480 pub paused: bool,
483 #[serde(rename = "companyId")]
486 pub company_id: String,
487}
488
489#[derive(Debug, Clone, Default, Serialize, Deserialize)]
491pub struct ResourceNotFoundDTO {
492 #[serde(
494 rename = "statusCode",
495 default,
496 skip_serializing_if = "Option::is_none"
497 )]
498 pub status_code: Option<f64>,
499 #[serde(default, skip_serializing_if = "Option::is_none")]
501 pub message: Option<String>,
502}
503
504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
506pub struct SaasLocationDto {
507 #[serde(
511 rename = "locationId",
512 default,
513 skip_serializing_if = "Option::is_none"
514 )]
515 pub location_id: Option<String>,
516 #[serde(rename = "companyId", default, skip_serializing_if = "Option::is_none")]
520 pub company_id: Option<String>,
521 #[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
525 pub saas_mode: Option<String>,
526 #[serde(
530 rename = "subscriptionId",
531 default,
532 skip_serializing_if = "Option::is_none"
533 )]
534 pub subscription_id: Option<String>,
535 #[serde(
537 rename = "customerId",
538 default,
539 skip_serializing_if = "Option::is_none"
540 )]
541 pub customer_id: Option<String>,
542 #[serde(default, skip_serializing_if = "Option::is_none")]
544 pub name: Option<String>,
545 #[serde(default, skip_serializing_if = "Option::is_none")]
547 pub email: Option<String>,
548 #[serde(
550 rename = "providerLocationId",
551 default,
552 skip_serializing_if = "Option::is_none"
553 )]
554 pub provider_location_id: Option<String>,
555 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
557 pub is_saa_sv2: Option<bool>,
558 #[serde(
560 rename = "subscriptionInfo",
561 default,
562 skip_serializing_if = "Option::is_none"
563 )]
564 pub subscription_info: Option<serde_json::Value>,
565}
566
567#[derive(Debug, Clone, Default, Serialize, Deserialize)]
569pub struct SaasPlanResponseDto {
570 #[serde(rename = "planId", default, skip_serializing_if = "Option::is_none")]
574 pub plan_id: Option<String>,
575 #[serde(rename = "companyId", default, skip_serializing_if = "Option::is_none")]
579 pub company_id: Option<String>,
580 #[serde(default, skip_serializing_if = "Option::is_none")]
584 pub title: Option<String>,
585 #[serde(default, skip_serializing_if = "Option::is_none")]
589 pub description: Option<String>,
590 #[serde(
594 rename = "saasProducts",
595 default,
596 skip_serializing_if = "Vec::is_empty"
597 )]
598 pub saas_products: Vec<String>,
599 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
601 pub add_ons: Vec<String>,
602 #[serde(rename = "planLevel", default, skip_serializing_if = "Option::is_none")]
606 pub plan_level: Option<f64>,
607 #[serde(
611 rename = "trialPeriod",
612 default,
613 skip_serializing_if = "Option::is_none"
614 )]
615 pub trial_period: Option<f64>,
616 #[serde(rename = "setupFee", default, skip_serializing_if = "Option::is_none")]
618 pub setup_fee: Option<f64>,
619 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
621 pub user_limit: Option<f64>,
622 #[serde(
624 rename = "contactLimit",
625 default,
626 skip_serializing_if = "Option::is_none"
627 )]
628 pub contact_limit: Option<f64>,
629 #[serde(default, skip_serializing_if = "Vec::is_empty")]
634 pub prices: Vec<serde_json::Value>,
635 #[serde(
637 rename = "categoryId",
638 default,
639 skip_serializing_if = "Option::is_none"
640 )]
641 pub category_id: Option<String>,
642 #[serde(
644 rename = "snapshotId",
645 default,
646 skip_serializing_if = "Option::is_none"
647 )]
648 pub snapshot_id: Option<String>,
649 #[serde(
651 rename = "providerLocationId",
652 default,
653 skip_serializing_if = "Option::is_none"
654 )]
655 pub provider_location_id: Option<String>,
656 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
658 pub product_id: Option<String>,
659 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
663 pub is_saa_sv2: Option<bool>,
664 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
669 pub created_at: Option<String>,
670 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
675 pub updated_at: Option<String>,
676}
677
678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
680pub struct UnauthorizedDTO {
681 #[serde(
683 rename = "statusCode",
684 default,
685 skip_serializing_if = "Option::is_none"
686 )]
687 pub status_code: Option<f64>,
688 #[serde(default, skip_serializing_if = "Option::is_none")]
690 pub message: Option<String>,
691 #[serde(default, skip_serializing_if = "Option::is_none")]
693 pub error: Option<String>,
694}
695
696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
698pub struct UpdateRebillingDto {
699 pub product: String,
705 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
708 pub location_ids: Vec<String>,
709 pub config: serde_json::Value,
713}
714
715#[derive(Debug, Clone, Default, Serialize, Deserialize)]
717pub struct UpdateRebillingResponseDto {
718 #[serde(default, skip_serializing_if = "Option::is_none")]
722 pub success: Option<bool>,
723}
724
725#[derive(Debug, Clone, Default, Serialize, Deserialize)]
727pub struct UpdateSubscriptionDto {
728 #[serde(rename = "subscriptionId")]
731 pub subscription_id: String,
732 #[serde(rename = "customerId")]
735 pub customer_id: String,
736 #[serde(rename = "companyId")]
739 pub company_id: String,
740}