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 BadRequestDTO {
109 #[serde(
111 rename = "statusCode",
112 default,
113 skip_serializing_if = "Option::is_none"
114 )]
115 pub status_code: Option<f64>,
116 #[serde(default, skip_serializing_if = "Option::is_none")]
118 pub message: Option<String>,
119}
120
121#[derive(Debug, Clone, Default, Serialize, Deserialize)]
123pub struct BulkDisableSaasDto {
124 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
127 pub location_ids: Vec<String>,
128}
129
130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
132pub struct BulkDisableSaasResponseDto {
133 pub data: serde_json::Value,
136}
137
138#[derive(Debug, Clone, Default, Serialize, Deserialize)]
140pub struct BulkEnableSaasActionPayloadDto {
141 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
143 pub price_id: Option<String>,
144 #[serde(
146 rename = "stripeAccountId",
147 default,
148 skip_serializing_if = "Option::is_none"
149 )]
150 pub stripe_account_id: Option<String>,
151 #[serde(rename = "saasPlanId")]
154 pub saas_plan_id: String,
155 #[serde(
157 rename = "providerLocationId",
158 default,
159 skip_serializing_if = "Option::is_none"
160 )]
161 pub provider_location_id: Option<String>,
162}
163
164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
166pub struct BulkEnableSaasRequestDto {
167 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
170 pub location_ids: Vec<String>,
171 #[serde(rename = "isSaaSV2")]
174 pub is_saa_sv2: bool,
175 #[serde(rename = "actionPayload")]
178 pub action_payload: BulkEnableSaasActionPayloadDto,
179}
180
181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
183pub struct BulkEnableSaasResponseDto {
184 pub success: bool,
187 pub message: String,
190 #[serde(
192 rename = "bulkActionUrl",
193 default,
194 skip_serializing_if = "Option::is_none"
195 )]
196 pub bulk_action_url: Option<String>,
197}
198
199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
201pub struct EnableSaasDto {
202 #[serde(
204 rename = "stripeAccountId",
205 default,
206 skip_serializing_if = "Option::is_none"
207 )]
208 pub stripe_account_id: Option<String>,
209 #[serde(default, skip_serializing_if = "Option::is_none")]
211 pub name: Option<String>,
212 #[serde(default, skip_serializing_if = "Option::is_none")]
214 pub email: Option<String>,
215 #[serde(
217 rename = "stripeCustomerId",
218 default,
219 skip_serializing_if = "Option::is_none"
220 )]
221 pub stripe_customer_id: Option<String>,
222 #[serde(rename = "companyId")]
224 pub company_id: String,
225 #[serde(rename = "isSaaSV2")]
228 pub is_saa_sv2: bool,
229 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
231 pub contact_id: Option<String>,
232 #[serde(
234 rename = "providerLocationId",
235 default,
236 skip_serializing_if = "Option::is_none"
237 )]
238 pub provider_location_id: Option<String>,
239 #[serde(default, skip_serializing_if = "Option::is_none")]
241 pub description: Option<String>,
242 #[serde(
244 rename = "saasPlanId",
245 default,
246 skip_serializing_if = "Option::is_none"
247 )]
248 pub saas_plan_id: Option<String>,
249 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
251 pub price_id: Option<String>,
252}
253
254#[derive(Debug, Clone, Default, Serialize, Deserialize)]
256pub struct EnableSaasResponseDto {
257 pub data: serde_json::Value,
260}
261
262#[derive(Debug, Clone, Default, Serialize, Deserialize)]
264pub struct GetSaasLocationsResponseDto {
265 #[serde(default, skip_serializing_if = "Vec::is_empty")]
268 pub locations: Vec<SaasLocationDto>,
269 pub pagination: serde_json::Value,
272}
273
274#[derive(Debug, Clone, Default, Serialize, Deserialize)]
276pub struct InternalServerErrorDTO {
277 #[serde(
279 rename = "statusCode",
280 default,
281 skip_serializing_if = "Option::is_none"
282 )]
283 pub status_code: Option<f64>,
284 #[serde(default, skip_serializing_if = "Option::is_none")]
286 pub message: Option<String>,
287}
288
289#[derive(Debug, Clone, Default, Serialize, Deserialize)]
291pub struct LocationSubscriptionResponseDto {
292 #[serde(rename = "locationId")]
295 pub location_id: String,
296 #[serde(rename = "isSaaSV2")]
299 pub is_saa_sv2: bool,
300 #[serde(rename = "companyId")]
303 pub company_id: String,
304 #[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
306 pub saas_mode: Option<String>,
307 #[serde(
309 rename = "subscriptionId",
310 default,
311 skip_serializing_if = "Option::is_none"
312 )]
313 pub subscription_id: Option<String>,
314 #[serde(
316 rename = "customerId",
317 default,
318 skip_serializing_if = "Option::is_none"
319 )]
320 pub customer_id: Option<String>,
321 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
323 pub product_id: Option<String>,
324 #[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
326 pub price_id: Option<String>,
327 #[serde(
329 rename = "saasPlanId",
330 default,
331 skip_serializing_if = "Option::is_none"
332 )]
333 pub saas_plan_id: Option<String>,
334 #[serde(
336 rename = "subscriptionStatus",
337 default,
338 skip_serializing_if = "Option::is_none"
339 )]
340 pub subscription_status: Option<String>,
341}
342
343#[derive(Debug, Clone, Default, Serialize, Deserialize)]
345pub struct PauseLocationDto {
346 pub paused: bool,
349 #[serde(rename = "companyId")]
352 pub company_id: String,
353}
354
355#[derive(Debug, Clone, Default, Serialize, Deserialize)]
357pub struct ResourceNotFoundDTO {
358 #[serde(
360 rename = "statusCode",
361 default,
362 skip_serializing_if = "Option::is_none"
363 )]
364 pub status_code: Option<f64>,
365 #[serde(default, skip_serializing_if = "Option::is_none")]
367 pub message: Option<String>,
368}
369
370#[derive(Debug, Clone, Default, Serialize, Deserialize)]
372pub struct SaasLocationDto {
373 #[serde(rename = "locationId")]
376 pub location_id: String,
377 #[serde(rename = "companyId")]
380 pub company_id: String,
381 #[serde(rename = "saasMode")]
384 pub saas_mode: String,
385 #[serde(rename = "subscriptionId")]
388 pub subscription_id: String,
389 #[serde(
391 rename = "customerId",
392 default,
393 skip_serializing_if = "Option::is_none"
394 )]
395 pub customer_id: Option<String>,
396 #[serde(default, skip_serializing_if = "Option::is_none")]
398 pub name: Option<String>,
399 #[serde(default, skip_serializing_if = "Option::is_none")]
401 pub email: Option<String>,
402 #[serde(
404 rename = "providerLocationId",
405 default,
406 skip_serializing_if = "Option::is_none"
407 )]
408 pub provider_location_id: Option<String>,
409 #[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
411 pub is_saa_sv2: Option<bool>,
412 #[serde(
414 rename = "subscriptionInfo",
415 default,
416 skip_serializing_if = "Option::is_none"
417 )]
418 pub subscription_info: Option<serde_json::Value>,
419}
420
421#[derive(Debug, Clone, Default, Serialize, Deserialize)]
423pub struct SaasPlanResponseDto {
424 #[serde(rename = "planId")]
427 pub plan_id: String,
428 #[serde(rename = "companyId")]
431 pub company_id: String,
432 pub title: String,
435 pub description: String,
438 #[serde(
441 rename = "saasProducts",
442 default,
443 skip_serializing_if = "Vec::is_empty"
444 )]
445 pub saas_products: Vec<String>,
446 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
448 pub add_ons: Vec<String>,
449 #[serde(rename = "planLevel")]
452 pub plan_level: f64,
453 #[serde(rename = "trialPeriod")]
456 pub trial_period: f64,
457 #[serde(rename = "setupFee", default, skip_serializing_if = "Option::is_none")]
459 pub setup_fee: Option<f64>,
460 #[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
462 pub user_limit: Option<f64>,
463 #[serde(
465 rename = "contactLimit",
466 default,
467 skip_serializing_if = "Option::is_none"
468 )]
469 pub contact_limit: Option<f64>,
470 #[serde(default, skip_serializing_if = "Vec::is_empty")]
474 pub prices: Vec<serde_json::Value>,
475 #[serde(
477 rename = "categoryId",
478 default,
479 skip_serializing_if = "Option::is_none"
480 )]
481 pub category_id: Option<String>,
482 #[serde(
484 rename = "snapshotId",
485 default,
486 skip_serializing_if = "Option::is_none"
487 )]
488 pub snapshot_id: Option<String>,
489 #[serde(
491 rename = "providerLocationId",
492 default,
493 skip_serializing_if = "Option::is_none"
494 )]
495 pub provider_location_id: Option<String>,
496 #[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
498 pub product_id: Option<String>,
499 #[serde(rename = "isSaaSV2")]
502 pub is_saa_sv2: bool,
503 #[serde(rename = "createdAt")]
507 pub created_at: String,
508 #[serde(rename = "updatedAt")]
512 pub updated_at: String,
513}
514
515#[derive(Debug, Clone, Default, Serialize, Deserialize)]
517pub struct UnauthorizedDTO {
518 #[serde(
520 rename = "statusCode",
521 default,
522 skip_serializing_if = "Option::is_none"
523 )]
524 pub status_code: Option<f64>,
525 #[serde(default, skip_serializing_if = "Option::is_none")]
527 pub message: Option<String>,
528 #[serde(default, skip_serializing_if = "Option::is_none")]
530 pub error: Option<String>,
531}
532
533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
535pub struct UpdateRebillingDto {
536 pub product: String,
542 #[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
545 pub location_ids: Vec<String>,
546 pub config: serde_json::Value,
550}
551
552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
554pub struct UpdateRebillingResponseDto {
555 pub success: bool,
558}
559
560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
562pub struct UpdateSubscriptionDto {
563 #[serde(rename = "subscriptionId")]
566 pub subscription_id: String,
567 #[serde(rename = "customerId")]
570 pub customer_id: String,
571 #[serde(rename = "companyId")]
574 pub company_id: String,
575}