use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ImportDetails {
#[serde(rename = "methodOfPayment", skip_serializing_if = "Option::is_none")]
pub method_of_payment: Option<MethodOfPayment>,
#[serde(rename = "internationalCommercialTerms", skip_serializing_if = "Option::is_none")]
pub international_commercial_terms: Option<InternationalCommercialTerms>,
#[serde(rename = "portOfDelivery", skip_serializing_if = "Option::is_none")]
pub port_of_delivery: Option<String>,
#[serde(rename = "importContainers", skip_serializing_if = "Option::is_none")]
pub import_containers: Option<String>,
#[serde(rename = "shippingInstructions", skip_serializing_if = "Option::is_none")]
pub shipping_instructions: Option<String>,
}
impl ImportDetails {
pub fn new() -> ImportDetails {
ImportDetails {
method_of_payment: None,
international_commercial_terms: None,
port_of_delivery: None,
import_containers: None,
shipping_instructions: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MethodOfPayment {
#[serde(rename = "PaidByBuyer")]
PaidByBuyer,
#[serde(rename = "CollectOnDelivery")]
CollectOnDelivery,
#[serde(rename = "DefinedByBuyerAndSeller")]
DefinedByBuyerAndSeller,
#[serde(rename = "FOBPortOfCall")]
FobPortOfCall,
#[serde(rename = "PrepaidBySeller")]
PrepaidBySeller,
#[serde(rename = "PaidBySeller")]
PaidBySeller,
}
impl Default for MethodOfPayment {
fn default() -> MethodOfPayment {
Self::PaidByBuyer
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum InternationalCommercialTerms {
#[serde(rename = "ExWorks")]
ExWorks,
#[serde(rename = "FreeCarrier")]
FreeCarrier,
#[serde(rename = "FreeOnBoard")]
FreeOnBoard,
#[serde(rename = "FreeAlongSideShip")]
FreeAlongSideShip,
#[serde(rename = "CarriagePaidTo")]
CarriagePaidTo,
#[serde(rename = "CostAndFreight")]
CostAndFreight,
#[serde(rename = "CarriageAndInsurancePaidTo")]
CarriageAndInsurancePaidTo,
#[serde(rename = "CostInsuranceAndFreight")]
CostInsuranceAndFreight,
#[serde(rename = "DeliveredAtTerminal")]
DeliveredAtTerminal,
#[serde(rename = "DeliveredAtPlace")]
DeliveredAtPlace,
#[serde(rename = "DeliverDutyPaid")]
DeliverDutyPaid,
}
impl Default for InternationalCommercialTerms {
fn default() -> InternationalCommercialTerms {
Self::ExWorks
}
}