use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RateItemId {
#[serde(rename = "BASE_RATE")]
BaseRate,
#[serde(rename = "TRANSACTION_FEE")]
TransactionFee,
#[serde(rename = "ADULT_SIGNATURE_CONFIRMATION")]
AdultSignatureConfirmation,
#[serde(rename = "SIGNATURE_CONFIRMATION")]
SignatureConfirmation,
#[serde(rename = "NO_CONFIRMATION")]
NoConfirmation,
#[serde(rename = "WAIVE_SIGNATURE")]
WaiveSignature,
#[serde(rename = "IMPLIED_LIABILITY")]
ImpliedLiability,
#[serde(rename = "HIDDEN_POSTAGE")]
HiddenPostage,
#[serde(rename = "DECLARED_VALUE")]
DeclaredValue,
#[serde(rename = "SUNDAY_HOLIDAY_DELIVERY")]
SundayHolidayDelivery,
#[serde(rename = "DELIVERY_CONFIRMATION")]
DeliveryConfirmation,
#[serde(rename = "IMPORT_DUTY_CHARGE")]
ImportDutyCharge,
#[serde(rename = "VAT")]
Vat,
#[serde(rename = "NO_SATURDAY_DELIVERY")]
NoSaturdayDelivery,
#[serde(rename = "INSURANCE")]
Insurance,
#[serde(rename = "COD")]
Cod,
#[serde(rename = "FUEL_SURCHARGE")]
FuelSurcharge,
#[serde(rename = "INSPECTION_CHARGE")]
InspectionCharge,
#[serde(rename = "DELIVERY_AREA_SURCHARGE")]
DeliveryAreaSurcharge,
#[serde(rename = "WAYBILL_CHARGE")]
WaybillCharge,
#[serde(rename = "AMAZON_SPONSORED_DISCOUNT")]
AmazonSponsoredDiscount,
#[serde(rename = "INTEGRATOR_SPONSORED_DISCOUNT")]
IntegratorSponsoredDiscount,
#[serde(rename = "OVERSIZE_SURCHARGE")]
OversizeSurcharge,
#[serde(rename = "CONGESTION_CHARGE")]
CongestionCharge,
#[serde(rename = "RESIDENTIAL_SURCHARGE")]
ResidentialSurcharge,
#[serde(rename = "ADDITIONAL_SURCHARGE")]
AdditionalSurcharge,
#[serde(rename = "SURCHARGE")]
Surcharge,
#[serde(rename = "REBATE")]
Rebate,
#[serde(rename = "HIGH_CUBE_SURCHARGE")]
HighCubeSurcharge,
#[serde(rename = "HIGH_LENGTH_SURCHARGE")]
HighLengthSurcharge,
#[serde(rename = "HIGH_WIDTH_SURCHARGE")]
HighWidthSurcharge,
#[serde(rename = "DEMAND_SURCHARGE")]
DemandSurcharge,
#[serde(rename = "NONSTANDARD_FEE")]
NonstandardFee,
}
impl std::fmt::Display for RateItemId {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::BaseRate => write!(f, "BASE_RATE"),
Self::TransactionFee => write!(f, "TRANSACTION_FEE"),
Self::AdultSignatureConfirmation => write!(f, "ADULT_SIGNATURE_CONFIRMATION"),
Self::SignatureConfirmation => write!(f, "SIGNATURE_CONFIRMATION"),
Self::NoConfirmation => write!(f, "NO_CONFIRMATION"),
Self::WaiveSignature => write!(f, "WAIVE_SIGNATURE"),
Self::ImpliedLiability => write!(f, "IMPLIED_LIABILITY"),
Self::HiddenPostage => write!(f, "HIDDEN_POSTAGE"),
Self::DeclaredValue => write!(f, "DECLARED_VALUE"),
Self::SundayHolidayDelivery => write!(f, "SUNDAY_HOLIDAY_DELIVERY"),
Self::DeliveryConfirmation => write!(f, "DELIVERY_CONFIRMATION"),
Self::ImportDutyCharge => write!(f, "IMPORT_DUTY_CHARGE"),
Self::Vat => write!(f, "VAT"),
Self::NoSaturdayDelivery => write!(f, "NO_SATURDAY_DELIVERY"),
Self::Insurance => write!(f, "INSURANCE"),
Self::Cod => write!(f, "COD"),
Self::FuelSurcharge => write!(f, "FUEL_SURCHARGE"),
Self::InspectionCharge => write!(f, "INSPECTION_CHARGE"),
Self::DeliveryAreaSurcharge => write!(f, "DELIVERY_AREA_SURCHARGE"),
Self::WaybillCharge => write!(f, "WAYBILL_CHARGE"),
Self::AmazonSponsoredDiscount => write!(f, "AMAZON_SPONSORED_DISCOUNT"),
Self::IntegratorSponsoredDiscount => write!(f, "INTEGRATOR_SPONSORED_DISCOUNT"),
Self::OversizeSurcharge => write!(f, "OVERSIZE_SURCHARGE"),
Self::CongestionCharge => write!(f, "CONGESTION_CHARGE"),
Self::ResidentialSurcharge => write!(f, "RESIDENTIAL_SURCHARGE"),
Self::AdditionalSurcharge => write!(f, "ADDITIONAL_SURCHARGE"),
Self::Surcharge => write!(f, "SURCHARGE"),
Self::Rebate => write!(f, "REBATE"),
Self::HighCubeSurcharge => write!(f, "HIGH_CUBE_SURCHARGE"),
Self::HighLengthSurcharge => write!(f, "HIGH_LENGTH_SURCHARGE"),
Self::HighWidthSurcharge => write!(f, "HIGH_WIDTH_SURCHARGE"),
Self::DemandSurcharge => write!(f, "DEMAND_SURCHARGE"),
Self::NonstandardFee => write!(f, "NONSTANDARD_FEE"),
}
}
}
impl Default for RateItemId {
fn default() -> RateItemId {
Self::BaseRate
}
}