use crate::Request;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct OrderInfo {
#[serde(rename = "order_channels_type")]
pub order_channels_type: Option<String>,
#[serde(rename = "trade_order_list")]
pub trade_order_list: Option<Vec<TradeOrderList>>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct TradeOrderList {
#[serde(rename = "mall_mask_id")]
pub mall_mask_id: Option<String>,
#[serde(rename = "order_mask_sn")]
pub order_mask_sn: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct ParamFdsWaybillGetRequest {
#[serde(rename = "sender")]
pub sender: Option<Sender>,
#[serde(rename = "trade_order_info_dtos")]
pub trade_order_info_dtos: Option<Vec<TradeOrderInfoDtos>>,
#[serde(rename = "wp_code")]
pub wp_code: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Sender {
#[serde(rename = "address")]
pub address: Option<Address>,
#[serde(rename = "mobile")]
pub mobile: Option<String>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "phone")]
pub phone: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PddFdsWaybillGet {
#[serde(rename = "param_fds_waybill_get_request")]
pub param_fds_waybill_get_request: Option<ParamFdsWaybillGetRequest>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct TradeOrderInfoDtos {
#[serde(rename = "logistics_services")]
pub logistics_services: Option<String>,
#[serde(rename = "object_id")]
pub object_id: Option<String>,
#[serde(rename = "order_info")]
pub order_info: Option<OrderInfo>,
#[serde(rename = "package_info")]
pub package_info: Option<PackageInfo>,
#[serde(rename = "template_url")]
pub template_url: Option<String>,
#[serde(rename = "user_id")]
pub user_id: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PackageInfo {
#[serde(rename = "goods_description")]
pub goods_description: Option<String>,
#[serde(rename = "id")]
pub id: Option<String>,
#[serde(rename = "items")]
pub items: Option<Vec<Items>>,
#[serde(rename = "packaging_description")]
pub packaging_description: Option<String>,
#[serde(rename = "total_packages_count")]
pub total_packages_count: Option<String>,
#[serde(rename = "volume")]
pub volume: Option<i32>,
#[serde(rename = "weight")]
pub weight: Option<i32>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Items {
#[serde(rename = "count")]
pub count: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Address {
#[serde(rename = "city")]
pub city: Option<String>,
#[serde(rename = "country")]
pub country: Option<String>,
#[serde(rename = "detail")]
pub detail: Option<String>,
#[serde(rename = "district")]
pub district: Option<String>,
#[serde(rename = "province")]
pub province: Option<String>,
#[serde(rename = "town")]
pub town: Option<String>,
}
impl Request for PddFdsWaybillGet {
fn get_type() -> String {
"pdd.fds.waybill.get".to_string()
}
fn get_response_name() -> String {
"pdd_fds_waybill_get_response".to_string()
}
}