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 = "sealNumber", skip_serializing_if = "Option::is_none")]
pub seal_number: Option<String>,
#[serde(rename = "route", skip_serializing_if = "Option::is_none")]
pub route: Option<Box<models::vendor_shipments::Route>>,
#[serde(rename = "importContainers", skip_serializing_if = "Option::is_none")]
pub import_containers: Option<String>,
#[serde(rename = "billableWeight", skip_serializing_if = "Option::is_none")]
pub billable_weight: Option<Box<models::vendor_shipments::Weight>>,
#[serde(rename = "estimatedShipByDate", skip_serializing_if = "Option::is_none")]
pub estimated_ship_by_date: Option<String>,
#[serde(rename = "handlingInstructions", skip_serializing_if = "Option::is_none")]
pub handling_instructions: Option<HandlingInstructions>,
}
impl ImportDetails {
pub fn new() -> ImportDetails {
ImportDetails {
method_of_payment: None,
seal_number: None,
route: None,
import_containers: None,
billable_weight: None,
estimated_ship_by_date: None,
handling_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 HandlingInstructions {
#[serde(rename = "Oversized")]
Oversized,
#[serde(rename = "Fragile")]
Fragile,
#[serde(rename = "Food")]
Food,
#[serde(rename = "HandleWithCare")]
HandleWithCare,
}
impl Default for HandlingInstructions {
fn default() -> HandlingInstructions {
Self::Oversized
}
}