use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Shipment {
#[serde(rename = "shipmentId")]
pub shipment_id: String,
#[serde(rename = "clientReferenceId")]
pub client_reference_id: String,
#[serde(rename = "shipFrom")]
pub ship_from: Box<models::shipping::Address>,
#[serde(rename = "shipTo")]
pub ship_to: Box<models::shipping::Address>,
#[serde(rename = "acceptedRate", skip_serializing_if = "Option::is_none")]
pub accepted_rate: Option<Box<models::shipping::AcceptedRate>>,
#[serde(rename = "shipper", skip_serializing_if = "Option::is_none")]
pub shipper: Option<Box<models::shipping::Party>>,
#[serde(rename = "containers")]
pub containers: Vec<models::shipping::Container>,
}
impl Shipment {
pub fn new(shipment_id: String, client_reference_id: String, ship_from: models::shipping::Address, ship_to: models::shipping::Address, containers: Vec<models::shipping::Container>) -> Shipment {
Shipment {
shipment_id,
client_reference_id,
ship_from: Box::new(ship_from),
ship_to: Box::new(ship_to),
accepted_rate: None,
shipper: None,
containers,
}
}
}