use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Item {
#[serde(rename = "itemValue", skip_serializing_if = "Option::is_none")]
pub item_value: Option<Box<models::shipping_v2::Currency>>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "itemIdentifier", skip_serializing_if = "Option::is_none")]
pub item_identifier: Option<String>,
#[serde(rename = "quantity")]
pub quantity: i32,
#[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
pub weight: Option<Box<models::shipping_v2::Weight>>,
#[serde(rename = "liquidVolume", skip_serializing_if = "Option::is_none")]
pub liquid_volume: Option<Box<models::shipping_v2::LiquidVolume>>,
#[serde(rename = "isHazmat", skip_serializing_if = "Option::is_none")]
pub is_hazmat: Option<bool>,
#[serde(rename = "dangerousGoodsDetails", skip_serializing_if = "Option::is_none")]
pub dangerous_goods_details: Option<Box<models::shipping_v2::DangerousGoodsDetails>>,
#[serde(rename = "productType", skip_serializing_if = "Option::is_none")]
pub product_type: Option<String>,
#[serde(rename = "invoiceDetails", skip_serializing_if = "Option::is_none")]
pub invoice_details: Option<Box<models::shipping_v2::InvoiceDetails>>,
#[serde(rename = "serialNumbers", skip_serializing_if = "Option::is_none")]
pub serial_numbers: Option<Vec<String>>,
#[serde(rename = "directFulfillmentItemIdentifiers", skip_serializing_if = "Option::is_none")]
pub direct_fulfillment_item_identifiers: Option<Box<models::shipping_v2::DirectFulfillmentItemIdentifiers>>,
}
impl Item {
pub fn new(quantity: i32) -> Item {
Item {
item_value: None,
description: None,
item_identifier: None,
quantity,
weight: None,
liquid_volume: None,
is_hazmat: None,
dangerous_goods_details: None,
product_type: None,
invoice_details: None,
serial_numbers: None,
direct_fulfillment_item_identifiers: None,
}
}
}