use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Container {
#[serde(rename = "containerType", skip_serializing_if = "Option::is_none")]
pub container_type: Option<ContainerType>,
#[serde(rename = "containerReferenceId")]
pub container_reference_id: String,
#[serde(rename = "value")]
pub value: Box<models::shipping::Currency>,
#[serde(rename = "dimensions")]
pub dimensions: Box<models::shipping::Dimensions>,
#[serde(rename = "items")]
pub items: Vec<models::shipping::ContainerItem>,
#[serde(rename = "weight")]
pub weight: Box<models::shipping::Weight>,
}
impl Container {
pub fn new(container_reference_id: String, value: models::shipping::Currency, dimensions: models::shipping::Dimensions, items: Vec<models::shipping::ContainerItem>, weight: models::shipping::Weight) -> Container {
Container {
container_type: None,
container_reference_id,
value: Box::new(value),
dimensions: Box::new(dimensions),
items,
weight: Box::new(weight),
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ContainerType {
#[serde(rename = "PACKAGE")]
Package,
}
impl Default for ContainerType {
fn default() -> ContainerType {
Self::Package
}
}