#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::doc_overindented_list_items
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AvailableShippingRate {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub currency: String,
pub amount: f64,
#[serde(
rename = "isCarrierRate",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_carrier_rate: Option<bool>,
#[serde(rename = "shippingCarrierId")]
pub shipping_carrier_id: String,
#[serde(
rename = "percentageOfRateFee",
default,
skip_serializing_if = "Option::is_none"
)]
pub percentage_of_rate_fee: Option<f64>,
#[serde(
rename = "shippingCarrierServices",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub shipping_carrier_services: Vec<ShippingCarrierServiceDto>,
#[serde(rename = "_id")]
pub id: String,
#[serde(rename = "shippingZoneId")]
pub shipping_zone_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContactAddress {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
rename = "companyName",
default,
skip_serializing_if = "Option::is_none"
)]
pub company_name: Option<String>,
#[serde(
rename = "addressLine1",
default,
skip_serializing_if = "Option::is_none"
)]
pub address_line1: Option<String>,
pub country: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub zip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateShippingCarrierDto {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub name: String,
#[serde(rename = "callbackUrl")]
pub callback_url: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub services: Vec<ShippingCarrierServiceDto>,
#[serde(
rename = "allowsMultipleServiceSelection",
default,
skip_serializing_if = "Option::is_none"
)]
pub allows_multiple_service_selection: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateShippingCarrierResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingCarrierSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateShippingRateDto {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub currency: String,
pub amount: f64,
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(rename = "minCondition")]
pub min_condition: f64,
#[serde(rename = "maxCondition")]
pub max_condition: f64,
#[serde(
rename = "isCarrierRate",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_carrier_rate: Option<bool>,
#[serde(rename = "shippingCarrierId")]
pub shipping_carrier_id: String,
#[serde(
rename = "percentageOfRateFee",
default,
skip_serializing_if = "Option::is_none"
)]
pub percentage_of_rate_fee: Option<f64>,
#[serde(
rename = "shippingCarrierServices",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub shipping_carrier_services: Vec<ShippingCarrierServiceDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateShippingRateResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingRateSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateShippingZoneDto {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub name: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub countries: Vec<ShippingZoneCountryDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateShippingZoneResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingZoneSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateStoreSettingDto {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
#[serde(rename = "shippingOrigin")]
pub shipping_origin: StoreShippingOriginDto,
#[serde(
rename = "storeOrderNotification",
default,
skip_serializing_if = "Option::is_none"
)]
pub store_order_notification: Option<StoreOrderNotificationDto>,
#[serde(
rename = "storeOrderFulfillmentNotification",
default,
skip_serializing_if = "Option::is_none"
)]
pub store_order_fulfillment_notification: Option<StoreOrderFulfillmentNotificationDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateStoreSettingResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: StoreSettingSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteShippingCarrierResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteShippingRateResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteShippingZoneResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetAvailableShippingRates {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub country: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<ContactAddress>,
#[serde(
rename = "amountAvailable",
default,
skip_serializing_if = "Option::is_none"
)]
pub amount_available: Option<String>,
#[serde(rename = "totalOrderAmount")]
pub total_order_amount: f64,
#[serde(
rename = "weightAvailable",
default,
skip_serializing_if = "Option::is_none"
)]
pub weight_available: Option<bool>,
#[serde(rename = "totalOrderWeight")]
pub total_order_weight: f64,
pub source: OrderSource,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub products: Vec<ProductItem>,
#[serde(
rename = "couponCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub coupon_code: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetAvailableShippingRatesResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub data: Vec<AvailableShippingRate>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetShippingCarrierResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingCarrierSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetShippingRateResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingRateSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetShippingZoneResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingZoneSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetStoreSettingResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: StoreSettingSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ListShippingCarrierResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub data: Vec<ShippingCarrierSchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ListShippingRateResponseDto {
pub total: f64,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub data: Vec<ShippingRateSchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ListShippingZoneResponseDto {
pub total: f64,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub data: Vec<ShippingZoneSchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct OrderSource {
#[serde(rename = "type")]
pub type_: String,
#[serde(rename = "subType", default, skip_serializing_if = "Option::is_none")]
pub sub_type: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ProductItem {
pub id: String,
pub qty: f64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ShippingCarrierSchema {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub name: String,
#[serde(rename = "callbackUrl")]
pub callback_url: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub services: Vec<ShippingCarrierServiceDto>,
#[serde(
rename = "allowsMultipleServiceSelection",
default,
skip_serializing_if = "Option::is_none"
)]
pub allows_multiple_service_selection: Option<bool>,
#[serde(rename = "_id")]
pub id: String,
#[serde(rename = "marketplaceAppId")]
pub marketplace_app_id: String,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ShippingCarrierServiceDto {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ShippingRateSchema {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub currency: String,
pub amount: f64,
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(rename = "minCondition")]
pub min_condition: f64,
#[serde(rename = "maxCondition")]
pub max_condition: f64,
#[serde(
rename = "isCarrierRate",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_carrier_rate: Option<bool>,
#[serde(rename = "shippingCarrierId")]
pub shipping_carrier_id: String,
#[serde(
rename = "percentageOfRateFee",
default,
skip_serializing_if = "Option::is_none"
)]
pub percentage_of_rate_fee: Option<f64>,
#[serde(
rename = "shippingCarrierServices",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub shipping_carrier_services: Vec<ShippingCarrierServiceDto>,
#[serde(rename = "_id")]
pub id: String,
#[serde(rename = "shippingZoneId")]
pub shipping_zone_id: String,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ShippingZoneCountryDto {
pub code: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub states: Vec<ShippingZoneCountryStateDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ShippingZoneCountryStateDto {
pub code: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ShippingZoneSchema {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
pub name: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub countries: Vec<ShippingZoneCountryDto>,
#[serde(rename = "_id")]
pub id: String,
#[serde(
rename = "shippingRates",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub shipping_rates: Vec<ShippingRateSchema>,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StoreOrderFulfillmentNotificationDto {
pub enabled: bool,
pub subject: String,
#[serde(rename = "emailTemplateId")]
pub email_template_id: String,
#[serde(rename = "defaultEmailTemplateId")]
pub default_email_template_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StoreOrderNotificationDto {
pub enabled: bool,
pub subject: String,
#[serde(rename = "emailTemplateId")]
pub email_template_id: String,
#[serde(rename = "defaultEmailTemplateId")]
pub default_email_template_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StoreSettingSchema {
#[serde(rename = "altId")]
pub alt_id: String,
#[serde(rename = "altType")]
pub alt_type: String,
#[serde(rename = "shippingOrigin")]
pub shipping_origin: StoreShippingOriginDto,
#[serde(
rename = "storeOrderNotification",
default,
skip_serializing_if = "Option::is_none"
)]
pub store_order_notification: Option<StoreOrderNotificationDto>,
#[serde(
rename = "storeOrderFulfillmentNotification",
default,
skip_serializing_if = "Option::is_none"
)]
pub store_order_fulfillment_notification: Option<StoreOrderFulfillmentNotificationDto>,
#[serde(rename = "_id")]
pub id: String,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StoreShippingOriginDto {
pub name: String,
pub country: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
pub city: String,
pub street1: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub street2: Option<String>,
pub zip: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateShippingCarrierDto {
#[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
pub alt_id: Option<String>,
#[serde(rename = "altType", default, skip_serializing_if = "Option::is_none")]
pub alt_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
rename = "callbackUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub callback_url: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub services: Vec<ShippingCarrierServiceDto>,
#[serde(
rename = "allowsMultipleServiceSelection",
default,
skip_serializing_if = "Option::is_none"
)]
pub allows_multiple_service_selection: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateShippingCarrierResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingCarrierSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateShippingRateDto {
#[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
pub alt_id: Option<String>,
#[serde(rename = "altType", default, skip_serializing_if = "Option::is_none")]
pub alt_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub amount: Option<f64>,
#[serde(
rename = "conditionType",
default,
skip_serializing_if = "Option::is_none"
)]
pub condition_type: Option<String>,
#[serde(
rename = "minCondition",
default,
skip_serializing_if = "Option::is_none"
)]
pub min_condition: Option<f64>,
#[serde(
rename = "maxCondition",
default,
skip_serializing_if = "Option::is_none"
)]
pub max_condition: Option<f64>,
#[serde(
rename = "isCarrierRate",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_carrier_rate: Option<bool>,
#[serde(
rename = "shippingCarrierId",
default,
skip_serializing_if = "Option::is_none"
)]
pub shipping_carrier_id: Option<String>,
#[serde(
rename = "percentageOfRateFee",
default,
skip_serializing_if = "Option::is_none"
)]
pub percentage_of_rate_fee: Option<f64>,
#[serde(
rename = "shippingCarrierServices",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub shipping_carrier_services: Vec<ShippingCarrierServiceDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateShippingRateResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingRateSchema,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateShippingZoneDto {
#[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
pub alt_id: Option<String>,
#[serde(rename = "altType", default, skip_serializing_if = "Option::is_none")]
pub alt_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub countries: Vec<ShippingZoneCountryDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateShippingZoneResponseDto {
pub status: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub data: ShippingZoneSchema,
}