use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Shipment {
#[serde(rename = "amazonReferenceId", skip_serializing_if = "Option::is_none")]
pub amazon_reference_id: Option<String>,
#[serde(rename = "contactInformation", skip_serializing_if = "Option::is_none")]
pub contact_information: Option<Box<models::fulfillment_inbound_2024_03_20::ContactInformation>>,
#[serde(rename = "dates", skip_serializing_if = "Option::is_none")]
pub dates: Option<Box<models::fulfillment_inbound_2024_03_20::Dates>>,
#[serde(rename = "destination")]
pub destination: Box<models::fulfillment_inbound_2024_03_20::ShipmentDestination>,
#[serde(rename = "freightInformation", skip_serializing_if = "Option::is_none")]
pub freight_information: Option<Box<models::fulfillment_inbound_2024_03_20::FreightInformation>>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "placementOptionId")]
pub placement_option_id: String,
#[serde(rename = "selectedDeliveryWindow", skip_serializing_if = "Option::is_none")]
pub selected_delivery_window: Option<Box<models::fulfillment_inbound_2024_03_20::SelectedDeliveryWindow>>,
#[serde(rename = "selectedTransportationOptionId", skip_serializing_if = "Option::is_none")]
pub selected_transportation_option_id: Option<String>,
#[serde(rename = "selfShipAppointmentDetails", skip_serializing_if = "Option::is_none")]
pub self_ship_appointment_details: Option<Vec<models::fulfillment_inbound_2024_03_20::SelfShipAppointmentDetails>>,
#[serde(rename = "shipmentConfirmationId", skip_serializing_if = "Option::is_none")]
pub shipment_confirmation_id: Option<String>,
#[serde(rename = "shipmentId")]
pub shipment_id: String,
#[serde(rename = "source")]
pub source: Box<models::fulfillment_inbound_2024_03_20::ShipmentSource>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "trackingDetails", skip_serializing_if = "Option::is_none")]
pub tracking_details: Option<Box<models::fulfillment_inbound_2024_03_20::TrackingDetails>>,
}
impl Shipment {
pub fn new(destination: models::fulfillment_inbound_2024_03_20::ShipmentDestination, placement_option_id: String, shipment_id: String, source: models::fulfillment_inbound_2024_03_20::ShipmentSource) -> Shipment {
Shipment {
amazon_reference_id: None,
contact_information: None,
dates: None,
destination: Box::new(destination),
freight_information: None,
name: None,
placement_option_id,
selected_delivery_window: None,
selected_transportation_option_id: None,
self_ship_appointment_details: None,
shipment_confirmation_id: None,
shipment_id,
source: Box::new(source),
status: None,
tracking_details: None,
}
}
}