use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ShippingLabel {
#[serde(rename = "purchaseOrderNumber")]
pub purchase_order_number: String,
#[serde(rename = "sellingParty")]
pub selling_party: Box<models::vendor_direct_fulfillment_shipping_v1::PartyIdentification>,
#[serde(rename = "shipFromParty")]
pub ship_from_party: Box<models::vendor_direct_fulfillment_shipping_v1::PartyIdentification>,
#[serde(rename = "labelFormat")]
pub label_format: LabelFormat,
#[serde(rename = "labelData")]
pub label_data: Vec<models::vendor_direct_fulfillment_shipping_v1::LabelData>,
}
impl ShippingLabel {
pub fn new(purchase_order_number: String, selling_party: models::vendor_direct_fulfillment_shipping_v1::PartyIdentification, ship_from_party: models::vendor_direct_fulfillment_shipping_v1::PartyIdentification, label_format: LabelFormat, label_data: Vec<models::vendor_direct_fulfillment_shipping_v1::LabelData>) -> ShippingLabel {
ShippingLabel {
purchase_order_number,
selling_party: Box::new(selling_party),
ship_from_party: Box::new(ship_from_party),
label_format,
label_data,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum LabelFormat {
#[serde(rename = "PNG")]
Png,
#[serde(rename = "ZPL")]
Zpl,
}
impl Default for LabelFormat {
fn default() -> LabelFormat {
Self::Png
}
}