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 BadRequestDTO {
101 #[serde(
103 rename = "statusCode",
104 default,
105 skip_serializing_if = "Option::is_none"
106 )]
107 pub status_code: Option<f64>,
108 #[serde(default, skip_serializing_if = "Option::is_none")]
110 pub message: Option<String>,
111}
112
113#[derive(Debug, Clone, Default, Serialize, Deserialize)]
115pub struct BulkDisableSaasDto {
116 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
119 pub location_ids: Vec<String>,
120}
121
122#[derive(Debug, Clone, Default, Serialize, Deserialize)]
124pub struct BulkDisableSaasResponseDto {
125 pub data: serde_json::Value,
128}
129
130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
132pub struct BulkEnableSaasActionPayloadDto {
133 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
135 pub price_id: Option<String>,
136 #[serde(
138 rename = "stripeAccountId",
139 default,
140 skip_serializing_if = "Option::is_none"
141 )]
142 pub stripe_account_id: Option<String>,
143 #[serde(rename = "saasPlanId")]
146 pub saas_plan_id: String,
147 #[serde(
149 rename = "providerLocationId",
150 default,
151 skip_serializing_if = "Option::is_none"
152 )]
153 pub provider_location_id: Option<String>,
154}
155
156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
158pub struct BulkEnableSaasRequestDto {
159 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
162 pub location_ids: Vec<String>,
163 #[serde(rename = "isSaaSV2")]
166 pub is_saa_sv2: bool,
167 #[serde(rename = "actionPayload")]
170 pub action_payload: BulkEnableSaasActionPayloadDto,
171}
172
173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
175pub struct BulkEnableSaasResponseDto {
176 pub success: bool,
179 pub message: String,
182 #[serde(
184 rename = "bulkActionUrl",
185 default,
186 skip_serializing_if = "Option::is_none"
187 )]
188 pub bulk_action_url: Option<String>,
189}
190
191#[derive(Debug, Clone, Default, Serialize, Deserialize)]
193pub struct EnableSaasDto {
194 #[serde(
196 rename = "stripeAccountId",
197 default,
198 skip_serializing_if = "Option::is_none"
199 )]
200 pub stripe_account_id: Option<String>,
201 #[serde(default, skip_serializing_if = "Option::is_none")]
203 pub name: Option<String>,
204 #[serde(default, skip_serializing_if = "Option::is_none")]
206 pub email: Option<String>,
207 #[serde(
209 rename = "stripeCustomerId",
210 default,
211 skip_serializing_if = "Option::is_none"
212 )]
213 pub stripe_customer_id: Option<String>,
214 #[serde(rename = "companyId")]
216 pub company_id: String,
217 #[serde(rename = "isSaaSV2")]
220 pub is_saa_sv2: bool,
221 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
223 pub contact_id: Option<String>,
224 #[serde(
226 rename = "providerLocationId",
227 default,
228 skip_serializing_if = "Option::is_none"
229 )]
230 pub provider_location_id: Option<String>,
231 #[serde(default, skip_serializing_if = "Option::is_none")]
233 pub description: Option<String>,
234 #[serde(
236 rename = "saasPlanId",
237 default,
238 skip_serializing_if = "Option::is_none"
239 )]
240 pub saas_plan_id: Option<String>,
241 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
243 pub price_id: Option<String>,
244}
245
246#[derive(Debug, Clone, Default, Serialize, Deserialize)]
248pub struct EnableSaasResponseDto {
249 pub data: serde_json::Value,
252}
253
254#[derive(Debug, Clone, Default, Serialize, Deserialize)]
256pub struct GetSaasLocationsResponseDto {
257 #[serde(default, skip_serializing_if = "Vec::is_empty")]
260 pub locations: Vec<SaasLocationDto>,
261 pub pagination: serde_json::Value,
264}
265
266#[derive(Debug, Clone, Default, Serialize, Deserialize)]
268pub struct InternalServerErrorDTO {
269 #[serde(
271 rename = "statusCode",
272 default,
273 skip_serializing_if = "Option::is_none"
274 )]
275 pub status_code: Option<f64>,
276 #[serde(default, skip_serializing_if = "Option::is_none")]
278 pub message: Option<String>,
279}
280
281#[derive(Debug, Clone, Default, Serialize, Deserialize)]
283pub struct LocationSubscriptionResponseDto {
284 #[serde(rename = "locationId")]
287 pub location_id: String,
288 #[serde(rename = "isSaaSV2")]
291 pub is_saa_sv2: bool,
292 #[serde(rename = "companyId")]
295 pub company_id: String,
296 #[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
298 pub saas_mode: Option<String>,
299 #[serde(
301 rename = "subscriptionId",
302 default,
303 skip_serializing_if = "Option::is_none"
304 )]
305 pub subscription_id: Option<String>,
306 #[serde(
308 rename = "customerId",
309 default,
310 skip_serializing_if = "Option::is_none"
311 )]
312 pub customer_id: Option<String>,
313 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
315 pub product_id: Option<String>,
316 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
318 pub price_id: Option<String>,
319 #[serde(
321 rename = "saasPlanId",
322 default,
323 skip_serializing_if = "Option::is_none"
324 )]
325 pub saas_plan_id: Option<String>,
326 #[serde(
328 rename = "subscriptionStatus",
329 default,
330 skip_serializing_if = "Option::is_none"
331 )]
332 pub subscription_status: Option<String>,
333}
334
335#[derive(Debug, Clone, Default, Serialize, Deserialize)]
337pub struct PauseLocationDto {
338 pub paused: bool,
341 #[serde(rename = "companyId")]
344 pub company_id: String,
345}
346
347#[derive(Debug, Clone, Default, Serialize, Deserialize)]
349pub struct ResourceNotFoundDTO {
350 #[serde(
352 rename = "statusCode",
353 default,
354 skip_serializing_if = "Option::is_none"
355 )]
356 pub status_code: Option<f64>,
357 #[serde(default, skip_serializing_if = "Option::is_none")]
359 pub message: Option<String>,
360}
361
362#[derive(Debug, Clone, Default, Serialize, Deserialize)]
364pub struct SaasLocationDto {
365 #[serde(rename = "locationId")]
368 pub location_id: String,
369 #[serde(rename = "companyId")]
372 pub company_id: String,
373 #[serde(rename = "saasMode")]
376 pub saas_mode: String,
377 #[serde(rename = "subscriptionId")]
380 pub subscription_id: String,
381 #[serde(
383 rename = "customerId",
384 default,
385 skip_serializing_if = "Option::is_none"
386 )]
387 pub customer_id: Option<String>,
388 #[serde(default, skip_serializing_if = "Option::is_none")]
390 pub name: Option<String>,
391 #[serde(default, skip_serializing_if = "Option::is_none")]
393 pub email: Option<String>,
394 #[serde(
396 rename = "providerLocationId",
397 default,
398 skip_serializing_if = "Option::is_none"
399 )]
400 pub provider_location_id: Option<String>,
401 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
403 pub is_saa_sv2: Option<bool>,
404 #[serde(
406 rename = "subscriptionInfo",
407 default,
408 skip_serializing_if = "Option::is_none"
409 )]
410 pub subscription_info: Option<serde_json::Value>,
411}
412
413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
415pub struct SaasPlanResponseDto {
416 #[serde(rename = "planId")]
419 pub plan_id: String,
420 #[serde(rename = "companyId")]
423 pub company_id: String,
424 pub title: String,
427 pub description: String,
430 #[serde(
433 rename = "saasProducts",
434 default,
435 skip_serializing_if = "Vec::is_empty"
436 )]
437 pub saas_products: Vec<String>,
438 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
440 pub add_ons: Vec<String>,
441 #[serde(rename = "planLevel")]
444 pub plan_level: f64,
445 #[serde(rename = "trialPeriod")]
448 pub trial_period: f64,
449 #[serde(rename = "setupFee", default, skip_serializing_if = "Option::is_none")]
451 pub setup_fee: Option<f64>,
452 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
454 pub user_limit: Option<f64>,
455 #[serde(
457 rename = "contactLimit",
458 default,
459 skip_serializing_if = "Option::is_none"
460 )]
461 pub contact_limit: Option<f64>,
462 #[serde(default, skip_serializing_if = "Vec::is_empty")]
466 pub prices: Vec<serde_json::Value>,
467 #[serde(
469 rename = "categoryId",
470 default,
471 skip_serializing_if = "Option::is_none"
472 )]
473 pub category_id: Option<String>,
474 #[serde(
476 rename = "snapshotId",
477 default,
478 skip_serializing_if = "Option::is_none"
479 )]
480 pub snapshot_id: Option<String>,
481 #[serde(
483 rename = "providerLocationId",
484 default,
485 skip_serializing_if = "Option::is_none"
486 )]
487 pub provider_location_id: Option<String>,
488 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
490 pub product_id: Option<String>,
491 #[serde(rename = "isSaaSV2")]
494 pub is_saa_sv2: bool,
495 #[serde(rename = "createdAt")]
499 pub created_at: String,
500 #[serde(rename = "updatedAt")]
504 pub updated_at: String,
505}
506
507#[derive(Debug, Clone, Default, Serialize, Deserialize)]
509pub struct UnauthorizedDTO {
510 #[serde(
512 rename = "statusCode",
513 default,
514 skip_serializing_if = "Option::is_none"
515 )]
516 pub status_code: Option<f64>,
517 #[serde(default, skip_serializing_if = "Option::is_none")]
519 pub message: Option<String>,
520 #[serde(default, skip_serializing_if = "Option::is_none")]
522 pub error: Option<String>,
523}
524
525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
527pub struct UpdateRebillingDto {
528 pub product: String,
534 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
537 pub location_ids: Vec<String>,
538 pub config: serde_json::Value,
542}
543
544#[derive(Debug, Clone, Default, Serialize, Deserialize)]
546pub struct UpdateRebillingResponseDto {
547 pub success: bool,
550}
551
552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
554pub struct UpdateSubscriptionDto {
555 #[serde(rename = "subscriptionId")]
558 pub subscription_id: String,
559 #[serde(rename = "customerId")]
562 pub customer_id: String,
563 #[serde(rename = "companyId")]
566 pub company_id: String,
567}