use crate::Request;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PddInvoiceDetailUpload {
#[serde(rename = "application_id")]
pub application_id: Option<i64>,
#[serde(rename = "business_type")]
pub business_type: Option<i32>,
#[serde(rename = "invoice_amount")]
pub invoice_amount: Option<i64>,
#[serde(rename = "invoice_code")]
pub invoice_code: Option<String>,
#[serde(rename = "invoice_file_content")]
pub invoice_file_content: Option<String>,
#[serde(rename = "invoice_item_list")]
pub invoice_item_list: Option<Vec<InvoiceItemList>>,
#[serde(rename = "invoice_kind")]
pub invoice_kind: Option<i32>,
#[serde(rename = "invoice_no")]
pub invoice_no: Option<String>,
#[serde(rename = "invoice_time")]
pub invoice_time: Option<i64>,
#[serde(rename = "invoice_type")]
pub invoice_type: Option<i32>,
#[serde(rename = "memo")]
pub memo: Option<String>,
#[serde(rename = "order_sn")]
pub order_sn: Option<String>,
#[serde(rename = "original_invoice_code")]
pub original_invoice_code: Option<String>,
#[serde(rename = "original_invoice_no")]
pub original_invoice_no: Option<String>,
#[serde(rename = "paper_shipping_id")]
pub paper_shipping_id: Option<i32>,
#[serde(rename = "paper_tracking_number")]
pub paper_tracking_number: Option<String>,
#[serde(rename = "payee_operator")]
pub payee_operator: Option<String>,
#[serde(rename = "payer_account")]
pub payer_account: Option<String>,
#[serde(rename = "payer_address")]
pub payer_address: Option<String>,
#[serde(rename = "payer_bank")]
pub payer_bank: Option<String>,
#[serde(rename = "payer_name")]
pub payer_name: Option<String>,
#[serde(rename = "payer_phone")]
pub payer_phone: Option<String>,
#[serde(rename = "payer_register_no")]
pub payer_register_no: Option<String>,
#[serde(rename = "sum_price")]
pub sum_price: Option<i64>,
#[serde(rename = "sum_tax")]
pub sum_tax: Option<i32>,
#[serde(rename = "tax_rate")]
pub tax_rate: Option<i32>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct InvoiceItemList {
#[serde(rename = "invoice_amount")]
pub invoice_amount: Option<i64>,
#[serde(rename = "invoice_code")]
pub invoice_code: Option<String>,
#[serde(rename = "invoice_file_content")]
pub invoice_file_content: Option<String>,
#[serde(rename = "invoice_no")]
pub invoice_no: Option<String>,
#[serde(rename = "original_invoice_code")]
pub original_invoice_code: Option<String>,
#[serde(rename = "original_invoice_no")]
pub original_invoice_no: Option<String>,
}
impl Request for PddInvoiceDetailUpload {
fn get_type() -> String {
"pdd.invoice.detail.upload".to_string()
}
fn get_response_name() -> String {
"invoice_detail_upload_response".to_string()
}
}