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 AgencyPlanResponseDto {
16 #[serde(rename = "planId")]
19 pub plan_id: String,
20 pub title: String,
23 pub description: String,
26 #[serde(
29 rename = "saasProducts",
30 default,
31 skip_serializing_if = "Vec::is_empty"
32 )]
33 pub saas_products: Vec<String>,
34 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
36 pub add_ons: Vec<String>,
37 #[serde(rename = "planLevel")]
40 pub plan_level: f64,
41 #[serde(rename = "trialPeriod")]
44 pub trial_period: f64,
45 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
47 pub user_limit: Option<f64>,
48 #[serde(
50 rename = "contactLimit",
51 default,
52 skip_serializing_if = "Option::is_none"
53 )]
54 pub contact_limit: Option<f64>,
55 #[serde(default, skip_serializing_if = "Vec::is_empty")]
59 pub prices: Vec<serde_json::Value>,
60 #[serde(
62 rename = "categoryId",
63 default,
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub category_id: Option<String>,
67 #[serde(
69 rename = "snapshotId",
70 default,
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub snapshot_id: Option<String>,
74 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
76 pub product_id: Option<String>,
77 #[serde(rename = "isSaaSV2")]
80 pub is_saa_sv2: bool,
81 #[serde(
83 rename = "providerLocationId",
84 default,
85 skip_serializing_if = "Option::is_none"
86 )]
87 pub provider_location_id: Option<String>,
88 #[serde(rename = "createdAt")]
91 pub created_at: String,
92 #[serde(rename = "updatedAt")]
95 pub updated_at: String,
96}
97
98#[derive(Debug, Clone, Default, Serialize, Deserialize)]
100pub struct AllowAttachRebillingDto {
101 #[serde(rename = "companyId")]
104 pub company_id: String,
105 #[serde(
112 rename = "attachedRebillingConfig",
113 default,
114 skip_serializing_if = "Option::is_none"
115 )]
116 pub attached_rebilling_config: Option<serde_json::Value>,
117}
118
119#[derive(Debug, Clone, Default, Serialize, Deserialize)]
121pub struct AllowAttachRebillingResponseDto {
122 pub success: bool,
125 #[serde(rename = "locationId")]
128 pub location_id: String,
129 #[serde(rename = "attachedRebillingConfig")]
133 pub attached_rebilling_config: serde_json::Value,
134}
135
136#[derive(Debug, Clone, Default, Serialize, Deserialize)]
138pub struct AttachedRebillingProductConfigDto {
139 pub enabled: bool,
142 pub markup: f64,
145 #[serde(default, skip_serializing_if = "Option::is_none")]
147 pub price: Option<f64>,
148}
149
150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
152pub struct BadRequestDTO {
153 #[serde(
155 rename = "statusCode",
156 default,
157 skip_serializing_if = "Option::is_none"
158 )]
159 pub status_code: Option<f64>,
160 #[serde(default, skip_serializing_if = "Option::is_none")]
162 pub message: Option<String>,
163}
164
165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
167pub struct BulkDisableSaasDto {
168 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
171 pub location_ids: Vec<String>,
172}
173
174#[derive(Debug, Clone, Default, Serialize, Deserialize)]
176pub struct BulkDisableSaasResponseDto {
177 pub data: serde_json::Value,
180}
181
182#[derive(Debug, Clone, Default, Serialize, Deserialize)]
184pub struct BulkEnableSaasActionPayloadDto {
185 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
187 pub price_id: Option<String>,
188 #[serde(
190 rename = "stripeAccountId",
191 default,
192 skip_serializing_if = "Option::is_none"
193 )]
194 pub stripe_account_id: Option<String>,
195 #[serde(rename = "saasPlanId")]
198 pub saas_plan_id: String,
199 #[serde(
201 rename = "providerLocationId",
202 default,
203 skip_serializing_if = "Option::is_none"
204 )]
205 pub provider_location_id: Option<String>,
206}
207
208#[derive(Debug, Clone, Default, Serialize, Deserialize)]
210pub struct BulkEnableSaasRequestDto {
211 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
214 pub location_ids: Vec<String>,
215 #[serde(rename = "isSaaSV2")]
218 pub is_saa_sv2: bool,
219 #[serde(rename = "actionPayload")]
222 pub action_payload: BulkEnableSaasActionPayloadDto,
223}
224
225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
227pub struct BulkEnableSaasResponseDto {
228 pub success: bool,
231 pub message: String,
234 #[serde(
236 rename = "bulkActionUrl",
237 default,
238 skip_serializing_if = "Option::is_none"
239 )]
240 pub bulk_action_url: Option<String>,
241}
242
243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
245pub struct ComplimentaryCreditDTO {
246 #[serde(
248 rename = "complimentaryCreditsAmount",
249 default,
250 skip_serializing_if = "Option::is_none"
251 )]
252 pub complimentary_credits_amount: Option<f64>,
253}
254
255#[derive(Debug, Clone, Default, Serialize, Deserialize)]
257pub struct EnableSaasDto {
258 #[serde(
260 rename = "stripeAccountId",
261 default,
262 skip_serializing_if = "Option::is_none"
263 )]
264 pub stripe_account_id: Option<String>,
265 #[serde(default, skip_serializing_if = "Option::is_none")]
267 pub name: Option<String>,
268 #[serde(default, skip_serializing_if = "Option::is_none")]
270 pub email: Option<String>,
271 #[serde(
273 rename = "stripeCustomerId",
274 default,
275 skip_serializing_if = "Option::is_none"
276 )]
277 pub stripe_customer_id: Option<String>,
278 #[serde(rename = "companyId")]
280 pub company_id: String,
281 #[serde(rename = "isSaaSV2")]
284 pub is_saa_sv2: bool,
285 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
287 pub contact_id: Option<String>,
288 #[serde(
290 rename = "providerLocationId",
291 default,
292 skip_serializing_if = "Option::is_none"
293 )]
294 pub provider_location_id: Option<String>,
295 #[serde(default, skip_serializing_if = "Option::is_none")]
297 pub description: Option<String>,
298 #[serde(
300 rename = "saasPlanId",
301 default,
302 skip_serializing_if = "Option::is_none"
303 )]
304 pub saas_plan_id: Option<String>,
305 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
307 pub price_id: Option<String>,
308}
309
310#[derive(Debug, Clone, Default, Serialize, Deserialize)]
312pub struct EnableSaasResponseDto {
313 pub data: serde_json::Value,
316}
317
318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
320pub struct GetSaasLocationsResponseDto {
321 #[serde(default, skip_serializing_if = "Vec::is_empty")]
324 pub locations: Vec<SaasLocationDto>,
325 pub pagination: serde_json::Value,
328}
329
330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
332pub struct InternalServerErrorDTO {
333 #[serde(
335 rename = "statusCode",
336 default,
337 skip_serializing_if = "Option::is_none"
338 )]
339 pub status_code: Option<f64>,
340 #[serde(default, skip_serializing_if = "Option::is_none")]
342 pub message: Option<String>,
343}
344
345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
347pub struct LocationSubscriptionResponseDto {
348 #[serde(rename = "locationId")]
351 pub location_id: String,
352 #[serde(rename = "isSaaSV2")]
355 pub is_saa_sv2: bool,
356 #[serde(rename = "companyId")]
359 pub company_id: String,
360 #[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
362 pub saas_mode: Option<String>,
363 #[serde(
365 rename = "subscriptionId",
366 default,
367 skip_serializing_if = "Option::is_none"
368 )]
369 pub subscription_id: Option<String>,
370 #[serde(
372 rename = "customerId",
373 default,
374 skip_serializing_if = "Option::is_none"
375 )]
376 pub customer_id: Option<String>,
377 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
379 pub product_id: Option<String>,
380 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
382 pub price_id: Option<String>,
383 #[serde(
385 rename = "saasPlanId",
386 default,
387 skip_serializing_if = "Option::is_none"
388 )]
389 pub saas_plan_id: Option<String>,
390 #[serde(
392 rename = "subscriptionStatus",
393 default,
394 skip_serializing_if = "Option::is_none"
395 )]
396 pub subscription_status: Option<String>,
397}
398
399#[derive(Debug, Clone, Default, Serialize, Deserialize)]
401pub struct LocationWalletBalanceDto {
402 #[serde(rename = "walletId")]
405 pub wallet_id: String,
406 pub balance: f64,
409 #[serde(rename = "complimentaryCredits")]
412 pub complimentary_credits: f64,
413}
414
415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
417pub struct PauseLocationDto {
418 pub paused: bool,
421 #[serde(rename = "companyId")]
424 pub company_id: String,
425}
426
427#[derive(Debug, Clone, Default, Serialize, Deserialize)]
429pub struct ResourceNotFoundDTO {
430 #[serde(
432 rename = "statusCode",
433 default,
434 skip_serializing_if = "Option::is_none"
435 )]
436 pub status_code: Option<f64>,
437 #[serde(default, skip_serializing_if = "Option::is_none")]
439 pub message: Option<String>,
440}
441
442#[derive(Debug, Clone, Default, Serialize, Deserialize)]
444pub struct SaasLocationDto {
445 #[serde(rename = "locationId")]
448 pub location_id: String,
449 #[serde(rename = "companyId")]
452 pub company_id: String,
453 #[serde(rename = "saasMode")]
456 pub saas_mode: String,
457 #[serde(rename = "subscriptionId")]
460 pub subscription_id: String,
461 #[serde(
463 rename = "customerId",
464 default,
465 skip_serializing_if = "Option::is_none"
466 )]
467 pub customer_id: Option<String>,
468 #[serde(default, skip_serializing_if = "Option::is_none")]
470 pub name: Option<String>,
471 #[serde(default, skip_serializing_if = "Option::is_none")]
473 pub email: Option<String>,
474 #[serde(
476 rename = "providerLocationId",
477 default,
478 skip_serializing_if = "Option::is_none"
479 )]
480 pub provider_location_id: Option<String>,
481 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
483 pub is_saa_sv2: Option<bool>,
484 #[serde(
486 rename = "subscriptionInfo",
487 default,
488 skip_serializing_if = "Option::is_none"
489 )]
490 pub subscription_info: Option<serde_json::Value>,
491}
492
493#[derive(Debug, Clone, Default, Serialize, Deserialize)]
495pub struct SaasPlanResponseDto {
496 #[serde(rename = "planId")]
499 pub plan_id: String,
500 #[serde(rename = "companyId")]
503 pub company_id: String,
504 pub title: String,
507 pub description: String,
510 #[serde(
513 rename = "saasProducts",
514 default,
515 skip_serializing_if = "Vec::is_empty"
516 )]
517 pub saas_products: Vec<String>,
518 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
520 pub add_ons: Vec<String>,
521 #[serde(rename = "planLevel")]
524 pub plan_level: f64,
525 #[serde(rename = "trialPeriod")]
528 pub trial_period: f64,
529 #[serde(rename = "setupFee", default, skip_serializing_if = "Option::is_none")]
531 pub setup_fee: Option<f64>,
532 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
534 pub user_limit: Option<f64>,
535 #[serde(
537 rename = "contactLimit",
538 default,
539 skip_serializing_if = "Option::is_none"
540 )]
541 pub contact_limit: Option<f64>,
542 #[serde(default, skip_serializing_if = "Vec::is_empty")]
546 pub prices: Vec<serde_json::Value>,
547 #[serde(
549 rename = "categoryId",
550 default,
551 skip_serializing_if = "Option::is_none"
552 )]
553 pub category_id: Option<String>,
554 #[serde(
556 rename = "snapshotId",
557 default,
558 skip_serializing_if = "Option::is_none"
559 )]
560 pub snapshot_id: Option<String>,
561 #[serde(
563 rename = "providerLocationId",
564 default,
565 skip_serializing_if = "Option::is_none"
566 )]
567 pub provider_location_id: Option<String>,
568 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
570 pub product_id: Option<String>,
571 #[serde(rename = "isSaaSV2")]
574 pub is_saa_sv2: bool,
575 #[serde(rename = "createdAt")]
579 pub created_at: String,
580 #[serde(rename = "updatedAt")]
584 pub updated_at: String,
585}
586
587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
589pub struct UnauthorizedDTO {
590 #[serde(
592 rename = "statusCode",
593 default,
594 skip_serializing_if = "Option::is_none"
595 )]
596 pub status_code: Option<f64>,
597 #[serde(default, skip_serializing_if = "Option::is_none")]
599 pub message: Option<String>,
600 #[serde(default, skip_serializing_if = "Option::is_none")]
602 pub error: Option<String>,
603}
604
605#[derive(Debug, Clone, Default, Serialize, Deserialize)]
607pub struct UpdateRebillingDto {
608 pub product: String,
614 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
617 pub location_ids: Vec<String>,
618 pub config: serde_json::Value,
622}
623
624#[derive(Debug, Clone, Default, Serialize, Deserialize)]
626pub struct UpdateRebillingResponseDto {
627 pub success: bool,
630}
631
632#[derive(Debug, Clone, Default, Serialize, Deserialize)]
634pub struct UpdateSubscriptionDto {
635 #[serde(rename = "subscriptionId")]
638 pub subscription_id: String,
639 #[serde(rename = "customerId")]
642 pub customer_id: String,
643 #[serde(rename = "companyId")]
646 pub company_id: String,
647}