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")]
27 pub plan_id: String,
28 pub title: String,
31 pub description: String,
34 #[serde(
37 rename = "saasProducts",
38 default,
39 skip_serializing_if = "Vec::is_empty"
40 )]
41 pub saas_products: Vec<String>,
42 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
44 pub add_ons: Vec<String>,
45 #[serde(rename = "planLevel")]
48 pub plan_level: f64,
49 #[serde(rename = "trialPeriod")]
52 pub trial_period: f64,
53 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
55 pub user_limit: Option<f64>,
56 #[serde(
58 rename = "contactLimit",
59 default,
60 skip_serializing_if = "Option::is_none"
61 )]
62 pub contact_limit: Option<f64>,
63 #[serde(default, skip_serializing_if = "Vec::is_empty")]
67 pub prices: Vec<serde_json::Value>,
68 #[serde(
70 rename = "categoryId",
71 default,
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub category_id: Option<String>,
75 #[serde(
77 rename = "snapshotId",
78 default,
79 skip_serializing_if = "Option::is_none"
80 )]
81 pub snapshot_id: Option<String>,
82 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
84 pub product_id: Option<String>,
85 #[serde(rename = "isSaaSV2")]
88 pub is_saa_sv2: bool,
89 #[serde(
91 rename = "providerLocationId",
92 default,
93 skip_serializing_if = "Option::is_none"
94 )]
95 pub provider_location_id: Option<String>,
96 #[serde(rename = "createdAt")]
99 pub created_at: String,
100 #[serde(rename = "updatedAt")]
103 pub updated_at: String,
104}
105
106#[derive(Debug, Clone, Default, Serialize, Deserialize)]
108pub struct AllowAttachRebillingDto {
109 #[serde(rename = "companyId")]
112 pub company_id: String,
113 #[serde(
120 rename = "attachedRebillingConfig",
121 default,
122 skip_serializing_if = "Option::is_none"
123 )]
124 pub attached_rebilling_config: Option<serde_json::Value>,
125}
126
127#[derive(Debug, Clone, Default, Serialize, Deserialize)]
129pub struct AllowAttachRebillingResponseDto {
130 pub success: bool,
133 #[serde(rename = "locationId")]
136 pub location_id: String,
137 #[serde(rename = "attachedRebillingConfig")]
141 pub attached_rebilling_config: serde_json::Value,
142}
143
144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
146pub struct AttachedRebillingProductConfigDto {
147 pub enabled: bool,
150 pub markup: f64,
153 #[serde(default, skip_serializing_if = "Option::is_none")]
155 pub price: Option<f64>,
156}
157
158#[derive(Debug, Clone, Default, Serialize, Deserialize)]
160pub struct BadRequestDTO {
161 #[serde(
163 rename = "statusCode",
164 default,
165 skip_serializing_if = "Option::is_none"
166 )]
167 pub status_code: Option<f64>,
168 #[serde(default, skip_serializing_if = "Option::is_none")]
170 pub message: Option<String>,
171}
172
173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
175pub struct BulkDisableSaasDto {
176 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
179 pub location_ids: Vec<String>,
180}
181
182#[derive(Debug, Clone, Default, Serialize, Deserialize)]
184pub struct BulkDisableSaasResponseDto {
185 pub data: serde_json::Value,
188}
189
190#[derive(Debug, Clone, Default, Serialize, Deserialize)]
192pub struct BulkEnableSaasActionPayloadDto {
193 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
195 pub price_id: Option<String>,
196 #[serde(
198 rename = "stripeAccountId",
199 default,
200 skip_serializing_if = "Option::is_none"
201 )]
202 pub stripe_account_id: Option<String>,
203 #[serde(rename = "saasPlanId")]
206 pub saas_plan_id: String,
207 #[serde(
209 rename = "providerLocationId",
210 default,
211 skip_serializing_if = "Option::is_none"
212 )]
213 pub provider_location_id: Option<String>,
214}
215
216#[derive(Debug, Clone, Default, Serialize, Deserialize)]
218pub struct BulkEnableSaasRequestDto {
219 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
222 pub location_ids: Vec<String>,
223 #[serde(rename = "isSaaSV2")]
226 pub is_saa_sv2: bool,
227 #[serde(rename = "actionPayload")]
230 pub action_payload: BulkEnableSaasActionPayloadDto,
231}
232
233#[derive(Debug, Clone, Default, Serialize, Deserialize)]
235pub struct BulkEnableSaasResponseDto {
236 pub success: bool,
239 pub message: String,
242 #[serde(
244 rename = "bulkActionUrl",
245 default,
246 skip_serializing_if = "Option::is_none"
247 )]
248 pub bulk_action_url: Option<String>,
249}
250
251#[derive(Debug, Clone, Default, Serialize, Deserialize)]
253pub struct ComplimentaryCreditDTO {
254 #[serde(
256 rename = "complimentaryCreditsAmount",
257 default,
258 skip_serializing_if = "Option::is_none"
259 )]
260 pub complimentary_credits_amount: Option<f64>,
261}
262
263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
265pub struct EnableSaasDto {
266 #[serde(
268 rename = "stripeAccountId",
269 default,
270 skip_serializing_if = "Option::is_none"
271 )]
272 pub stripe_account_id: Option<String>,
273 #[serde(default, skip_serializing_if = "Option::is_none")]
275 pub name: Option<String>,
276 #[serde(default, skip_serializing_if = "Option::is_none")]
278 pub email: Option<String>,
279 #[serde(
281 rename = "stripeCustomerId",
282 default,
283 skip_serializing_if = "Option::is_none"
284 )]
285 pub stripe_customer_id: Option<String>,
286 #[serde(rename = "companyId")]
288 pub company_id: String,
289 #[serde(rename = "isSaaSV2")]
292 pub is_saa_sv2: bool,
293 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
295 pub contact_id: Option<String>,
296 #[serde(
298 rename = "providerLocationId",
299 default,
300 skip_serializing_if = "Option::is_none"
301 )]
302 pub provider_location_id: Option<String>,
303 #[serde(default, skip_serializing_if = "Option::is_none")]
305 pub description: Option<String>,
306 #[serde(
308 rename = "saasPlanId",
309 default,
310 skip_serializing_if = "Option::is_none"
311 )]
312 pub saas_plan_id: Option<String>,
313 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
315 pub price_id: Option<String>,
316}
317
318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
320pub struct EnableSaasResponseDto {
321 pub data: serde_json::Value,
324}
325
326#[derive(Debug, Clone, Default, Serialize, Deserialize)]
328pub struct GetSaasLocationsResponseDto {
329 #[serde(default, skip_serializing_if = "Vec::is_empty")]
332 pub locations: Vec<SaasLocationDto>,
333 pub pagination: serde_json::Value,
336}
337
338#[derive(Debug, Clone, Default, Serialize, Deserialize)]
340pub struct InternalServerErrorDTO {
341 #[serde(
343 rename = "statusCode",
344 default,
345 skip_serializing_if = "Option::is_none"
346 )]
347 pub status_code: Option<f64>,
348 #[serde(default, skip_serializing_if = "Option::is_none")]
350 pub message: Option<String>,
351}
352
353#[derive(Debug, Clone, Default, Serialize, Deserialize)]
355pub struct LocationSubscriptionResponseDto {
356 #[serde(rename = "locationId")]
359 pub location_id: String,
360 #[serde(rename = "isSaaSV2")]
363 pub is_saa_sv2: bool,
364 #[serde(rename = "companyId")]
367 pub company_id: String,
368 #[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
370 pub saas_mode: Option<String>,
371 #[serde(
373 rename = "subscriptionId",
374 default,
375 skip_serializing_if = "Option::is_none"
376 )]
377 pub subscription_id: Option<String>,
378 #[serde(
380 rename = "customerId",
381 default,
382 skip_serializing_if = "Option::is_none"
383 )]
384 pub customer_id: Option<String>,
385 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
387 pub product_id: Option<String>,
388 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
390 pub price_id: Option<String>,
391 #[serde(
393 rename = "saasPlanId",
394 default,
395 skip_serializing_if = "Option::is_none"
396 )]
397 pub saas_plan_id: Option<String>,
398 #[serde(
400 rename = "subscriptionStatus",
401 default,
402 skip_serializing_if = "Option::is_none"
403 )]
404 pub subscription_status: Option<String>,
405}
406
407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
409pub struct LocationWalletBalanceDto {
410 #[serde(rename = "walletId")]
413 pub wallet_id: String,
414 pub balance: f64,
417 #[serde(rename = "complimentaryCredits")]
420 pub complimentary_credits: f64,
421}
422
423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
425pub struct PauseLocationDto {
426 pub paused: bool,
429 #[serde(rename = "companyId")]
432 pub company_id: String,
433}
434
435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
437pub struct ResourceNotFoundDTO {
438 #[serde(
440 rename = "statusCode",
441 default,
442 skip_serializing_if = "Option::is_none"
443 )]
444 pub status_code: Option<f64>,
445 #[serde(default, skip_serializing_if = "Option::is_none")]
447 pub message: Option<String>,
448}
449
450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
452pub struct SaasLocationDto {
453 #[serde(rename = "locationId")]
456 pub location_id: String,
457 #[serde(rename = "companyId")]
460 pub company_id: String,
461 #[serde(rename = "saasMode")]
464 pub saas_mode: String,
465 #[serde(rename = "subscriptionId")]
468 pub subscription_id: String,
469 #[serde(
471 rename = "customerId",
472 default,
473 skip_serializing_if = "Option::is_none"
474 )]
475 pub customer_id: Option<String>,
476 #[serde(default, skip_serializing_if = "Option::is_none")]
478 pub name: Option<String>,
479 #[serde(default, skip_serializing_if = "Option::is_none")]
481 pub email: Option<String>,
482 #[serde(
484 rename = "providerLocationId",
485 default,
486 skip_serializing_if = "Option::is_none"
487 )]
488 pub provider_location_id: Option<String>,
489 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
491 pub is_saa_sv2: Option<bool>,
492 #[serde(
494 rename = "subscriptionInfo",
495 default,
496 skip_serializing_if = "Option::is_none"
497 )]
498 pub subscription_info: Option<serde_json::Value>,
499}
500
501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
503pub struct SaasPlanResponseDto {
504 #[serde(rename = "planId")]
507 pub plan_id: String,
508 #[serde(rename = "companyId")]
511 pub company_id: String,
512 pub title: String,
515 pub description: String,
518 #[serde(
521 rename = "saasProducts",
522 default,
523 skip_serializing_if = "Vec::is_empty"
524 )]
525 pub saas_products: Vec<String>,
526 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
528 pub add_ons: Vec<String>,
529 #[serde(rename = "planLevel")]
532 pub plan_level: f64,
533 #[serde(rename = "trialPeriod")]
536 pub trial_period: f64,
537 #[serde(rename = "setupFee", default, skip_serializing_if = "Option::is_none")]
539 pub setup_fee: Option<f64>,
540 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
542 pub user_limit: Option<f64>,
543 #[serde(
545 rename = "contactLimit",
546 default,
547 skip_serializing_if = "Option::is_none"
548 )]
549 pub contact_limit: Option<f64>,
550 #[serde(default, skip_serializing_if = "Vec::is_empty")]
554 pub prices: Vec<serde_json::Value>,
555 #[serde(
557 rename = "categoryId",
558 default,
559 skip_serializing_if = "Option::is_none"
560 )]
561 pub category_id: Option<String>,
562 #[serde(
564 rename = "snapshotId",
565 default,
566 skip_serializing_if = "Option::is_none"
567 )]
568 pub snapshot_id: Option<String>,
569 #[serde(
571 rename = "providerLocationId",
572 default,
573 skip_serializing_if = "Option::is_none"
574 )]
575 pub provider_location_id: Option<String>,
576 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
578 pub product_id: Option<String>,
579 #[serde(rename = "isSaaSV2")]
582 pub is_saa_sv2: bool,
583 #[serde(rename = "createdAt")]
587 pub created_at: String,
588 #[serde(rename = "updatedAt")]
592 pub updated_at: String,
593}
594
595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
597pub struct UnauthorizedDTO {
598 #[serde(
600 rename = "statusCode",
601 default,
602 skip_serializing_if = "Option::is_none"
603 )]
604 pub status_code: Option<f64>,
605 #[serde(default, skip_serializing_if = "Option::is_none")]
607 pub message: Option<String>,
608 #[serde(default, skip_serializing_if = "Option::is_none")]
610 pub error: Option<String>,
611}
612
613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
615pub struct UpdateRebillingDto {
616 pub product: String,
622 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
625 pub location_ids: Vec<String>,
626 pub config: serde_json::Value,
630}
631
632#[derive(Debug, Clone, Default, Serialize, Deserialize)]
634pub struct UpdateRebillingResponseDto {
635 pub success: bool,
638}
639
640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
642pub struct UpdateSubscriptionDto {
643 #[serde(rename = "subscriptionId")]
646 pub subscription_id: String,
647 #[serde(rename = "customerId")]
650 pub customer_id: String,
651 #[serde(rename = "companyId")]
654 pub company_id: String,
655}