use crate::Request;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct GoodsList {
#[serde(rename = "bar_code")]
pub bar_code: Option<String>,
#[serde(rename = "bonded_warehouse_name")]
pub bonded_warehouse_name: Option<String>,
#[serde(rename = "brand_chinese_name")]
pub brand_chinese_name: Option<String>,
#[serde(rename = "brand_english_name")]
pub brand_english_name: Option<String>,
#[serde(rename = "category")]
pub category: Option<String>,
#[serde(rename = "consumption_tax_rate")]
pub consumption_tax_rate: Option<f32>,
#[serde(rename = "cost_price")]
pub cost_price: Option<f32>,
#[serde(rename = "customs_code")]
pub customs_code: Option<String>,
#[serde(rename = "ebc_name")]
pub ebc_name: Option<String>,
#[serde(rename = "ems_no")]
pub ems_no: Option<String>,
#[serde(rename = "expiration_date")]
pub expiration_date: Option<String>,
#[serde(rename = "gross_weight")]
pub gross_weight: Option<f32>,
#[serde(rename = "hs_code")]
pub hs_code: Option<String>,
#[serde(rename = "img_url")]
pub img_url: Option<String>,
#[serde(rename = "item_no")]
pub item_no: Option<String>,
#[serde(rename = "item_record_no")]
pub item_record_no: Option<String>,
#[serde(rename = "manufacturing_company_name")]
pub manufacturing_company_name: Option<String>,
#[serde(rename = "manufacturing_company_registration_no")]
pub manufacturing_company_registration_no: Option<String>,
#[serde(rename = "manufacturing_factory_address")]
pub manufacturing_factory_address: Option<String>,
#[serde(rename = "net_weight")]
pub net_weight: Option<f32>,
#[serde(rename = "port_code")]
pub port_code: Option<String>,
#[serde(rename = "producing_country")]
pub producing_country: Option<String>,
#[serde(rename = "product_record_no")]
pub product_record_no: Option<String>,
#[serde(rename = "qty1")]
pub qty1: Option<f32>,
#[serde(rename = "qty2")]
pub qty2: Option<f32>,
#[serde(rename = "record_chinese_name")]
pub record_chinese_name: Option<String>,
#[serde(rename = "record_english_name")]
pub record_english_name: Option<String>,
#[serde(rename = "record_model")]
pub record_model: Option<String>,
#[serde(rename = "specification")]
pub specification: Option<String>,
#[serde(rename = "stock")]
pub stock: Option<i64>,
#[serde(rename = "stock_time")]
pub stock_time: Option<String>,
#[serde(rename = "tariff_rate")]
pub tariff_rate: Option<f32>,
#[serde(rename = "unit")]
pub unit: Option<String>,
#[serde(rename = "unit1")]
pub unit1: Option<String>,
#[serde(rename = "unit2")]
pub unit2: Option<String>,
#[serde(rename = "unit_price")]
pub unit_price: Option<f32>,
#[serde(rename = "value_added_tax_rate")]
pub value_added_tax_rate: Option<f32>,
#[serde(rename = "vendor_name")]
pub vendor_name: Option<String>,
#[serde(rename = "wc_code")]
pub wc_code: Option<String>,
#[serde(rename = "wc_name")]
pub wc_name: Option<String>,
#[serde(rename = "website")]
pub website: Option<String>,
#[serde(rename = "wrap_type")]
pub wrap_type: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PddCustomsSendGoodsRecordRequest {
#[serde(rename = "goods_list")]
pub goods_list: Option<Vec<GoodsList>>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PddCustomsSendGoodsRecord {
#[serde(rename = "request")]
pub request: Option<PddCustomsSendGoodsRecordRequest>,
}
impl Request for PddCustomsSendGoodsRecord {
fn get_type() -> String {
"pdd.customs.send.goods.record".to_string()
}
fn get_response_name() -> String {
"response".to_string()
}
}