#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::doc_overindented_list_items
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AgencyPlanResponseDto {
#[serde(rename = "planId")]
pub plan_id: String,
pub title: String,
pub description: String,
#[serde(
rename = "saasProducts",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub saas_products: Vec<String>,
#[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
pub add_ons: Vec<String>,
#[serde(rename = "planLevel")]
pub plan_level: f64,
#[serde(rename = "trialPeriod")]
pub trial_period: f64,
#[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
pub user_limit: Option<f64>,
#[serde(
rename = "contactLimit",
default,
skip_serializing_if = "Option::is_none"
)]
pub contact_limit: Option<f64>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub prices: Vec<serde_json::Value>,
#[serde(
rename = "categoryId",
default,
skip_serializing_if = "Option::is_none"
)]
pub category_id: Option<String>,
#[serde(
rename = "snapshotId",
default,
skip_serializing_if = "Option::is_none"
)]
pub snapshot_id: Option<String>,
#[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
#[serde(rename = "isSaaSV2")]
pub is_saa_sv2: bool,
#[serde(
rename = "providerLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub provider_location_id: Option<String>,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BadRequestDTO {
#[serde(
rename = "statusCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub status_code: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BulkDisableSaasDto {
#[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
pub location_ids: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BulkDisableSaasResponseDto {
pub data: serde_json::Value,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BulkEnableSaasActionPayloadDto {
#[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
pub price_id: Option<String>,
#[serde(
rename = "stripeAccountId",
default,
skip_serializing_if = "Option::is_none"
)]
pub stripe_account_id: Option<String>,
#[serde(rename = "saasPlanId")]
pub saas_plan_id: String,
#[serde(
rename = "providerLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub provider_location_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BulkEnableSaasRequestDto {
#[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
pub location_ids: Vec<String>,
#[serde(rename = "isSaaSV2")]
pub is_saa_sv2: bool,
#[serde(rename = "actionPayload")]
pub action_payload: BulkEnableSaasActionPayloadDto,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BulkEnableSaasResponseDto {
pub success: bool,
pub message: String,
#[serde(
rename = "bulkActionUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub bulk_action_url: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct EnableSaasDto {
#[serde(
rename = "stripeAccountId",
default,
skip_serializing_if = "Option::is_none"
)]
pub stripe_account_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(
rename = "stripeCustomerId",
default,
skip_serializing_if = "Option::is_none"
)]
pub stripe_customer_id: Option<String>,
#[serde(rename = "companyId")]
pub company_id: String,
#[serde(rename = "isSaaSV2")]
pub is_saa_sv2: bool,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(
rename = "providerLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub provider_location_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(
rename = "saasPlanId",
default,
skip_serializing_if = "Option::is_none"
)]
pub saas_plan_id: Option<String>,
#[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
pub price_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct EnableSaasResponseDto {
pub data: serde_json::Value,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetSaasLocationsResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub locations: Vec<SaasLocationDto>,
pub pagination: serde_json::Value,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct InternalServerErrorDTO {
#[serde(
rename = "statusCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub status_code: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LocationSubscriptionResponseDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "isSaaSV2")]
pub is_saa_sv2: bool,
#[serde(rename = "companyId")]
pub company_id: String,
#[serde(rename = "saasMode", default, skip_serializing_if = "Option::is_none")]
pub saas_mode: Option<String>,
#[serde(
rename = "subscriptionId",
default,
skip_serializing_if = "Option::is_none"
)]
pub subscription_id: Option<String>,
#[serde(
rename = "customerId",
default,
skip_serializing_if = "Option::is_none"
)]
pub customer_id: Option<String>,
#[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
#[serde(rename = "priceId", default, skip_serializing_if = "Option::is_none")]
pub price_id: Option<String>,
#[serde(
rename = "saasPlanId",
default,
skip_serializing_if = "Option::is_none"
)]
pub saas_plan_id: Option<String>,
#[serde(
rename = "subscriptionStatus",
default,
skip_serializing_if = "Option::is_none"
)]
pub subscription_status: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct PauseLocationDto {
pub paused: bool,
#[serde(rename = "companyId")]
pub company_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ResourceNotFoundDTO {
#[serde(
rename = "statusCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub status_code: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SaasLocationDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "companyId")]
pub company_id: String,
#[serde(rename = "saasMode")]
pub saas_mode: String,
#[serde(rename = "subscriptionId")]
pub subscription_id: String,
#[serde(
rename = "customerId",
default,
skip_serializing_if = "Option::is_none"
)]
pub customer_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(
rename = "providerLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub provider_location_id: Option<String>,
#[serde(rename = "isSaaSV2", default, skip_serializing_if = "Option::is_none")]
pub is_saa_sv2: Option<bool>,
#[serde(
rename = "subscriptionInfo",
default,
skip_serializing_if = "Option::is_none"
)]
pub subscription_info: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SaasPlanResponseDto {
#[serde(rename = "planId")]
pub plan_id: String,
#[serde(rename = "companyId")]
pub company_id: String,
pub title: String,
pub description: String,
#[serde(
rename = "saasProducts",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub saas_products: Vec<String>,
#[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
pub add_ons: Vec<String>,
#[serde(rename = "planLevel")]
pub plan_level: f64,
#[serde(rename = "trialPeriod")]
pub trial_period: f64,
#[serde(rename = "setupFee", default, skip_serializing_if = "Option::is_none")]
pub setup_fee: Option<f64>,
#[serde(rename = "userLimit", default, skip_serializing_if = "Option::is_none")]
pub user_limit: Option<f64>,
#[serde(
rename = "contactLimit",
default,
skip_serializing_if = "Option::is_none"
)]
pub contact_limit: Option<f64>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub prices: Vec<serde_json::Value>,
#[serde(
rename = "categoryId",
default,
skip_serializing_if = "Option::is_none"
)]
pub category_id: Option<String>,
#[serde(
rename = "snapshotId",
default,
skip_serializing_if = "Option::is_none"
)]
pub snapshot_id: Option<String>,
#[serde(
rename = "providerLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub provider_location_id: Option<String>,
#[serde(rename = "productId", default, skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
#[serde(rename = "isSaaSV2")]
pub is_saa_sv2: bool,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UnauthorizedDTO {
#[serde(
rename = "statusCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub status_code: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateRebillingDto {
pub product: String,
#[serde(rename = "locationIds", default, skip_serializing_if = "Vec::is_empty")]
pub location_ids: Vec<String>,
pub config: serde_json::Value,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateRebillingResponseDto {
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateSubscriptionDto {
#[serde(rename = "subscriptionId")]
pub subscription_id: String,
#[serde(rename = "customerId")]
pub customer_id: String,
#[serde(rename = "companyId")]
pub company_id: String,
}