use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Containers {
#[serde(rename = "containerType")]
pub container_type: ContainerType,
#[serde(rename = "containerSequenceNumber", skip_serializing_if = "Option::is_none")]
pub container_sequence_number: Option<String>,
#[serde(rename = "containerIdentifiers")]
pub container_identifiers: Vec<models::vendor_shipments::ContainerIdentification>,
#[serde(rename = "trackingNumber", skip_serializing_if = "Option::is_none")]
pub tracking_number: Option<String>,
#[serde(rename = "dimensions", skip_serializing_if = "Option::is_none")]
pub dimensions: Option<Box<models::vendor_shipments::Dimensions>>,
#[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
pub weight: Option<Box<models::vendor_shipments::Weight>>,
#[serde(rename = "tier", skip_serializing_if = "Option::is_none")]
pub tier: Option<i32>,
#[serde(rename = "block", skip_serializing_if = "Option::is_none")]
pub block: Option<i32>,
#[serde(rename = "innerContainersDetails", skip_serializing_if = "Option::is_none")]
pub inner_containers_details: Option<Box<models::vendor_shipments::InnerContainersDetails>>,
#[serde(rename = "packedItems", skip_serializing_if = "Option::is_none")]
pub packed_items: Option<Vec<models::vendor_shipments::PackedItems>>,
}
impl Containers {
pub fn new(container_type: ContainerType, container_identifiers: Vec<models::vendor_shipments::ContainerIdentification>) -> Containers {
Containers {
container_type,
container_sequence_number: None,
container_identifiers,
tracking_number: None,
dimensions: None,
weight: None,
tier: None,
block: None,
inner_containers_details: None,
packed_items: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ContainerType {
#[serde(rename = "carton")]
Carton,
#[serde(rename = "pallet")]
Pallet,
}
impl Default for ContainerType {
fn default() -> ContainerType {
Self::Carton
}
}