use std::collections::BTreeMap;
use serde::{Serialize, Deserialize};
use crate::jd::method::JDMethod;
use crate::JDRequest;
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdJFGoodsRequest {
pub goods_req: JdJFGoodsParam,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdJFGoodsParam {
pub elite_id: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_index: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pid: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fields: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub forbid_types: Option<String>,
}
impl JDRequest for JdJFGoodsRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::FanGoodsSelect
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdGoodsInfoQueryRequest {
pub sku_ids: String,
}
impl JDRequest for JdGoodsInfoQueryRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::GoodsInfoQuery
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdPromotionUrlGenerateRequest {
pub promotion_code_req: JdPromotionUrlGenerateParam,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdPromotionUrlGenerateParam {
pub material_id: String,
pub site_id: String,
pub position_id: Option<u64>,
pub sub_union_id: Option<String>,
pub ext1: Option<String>,
pub pid: Option<String>,
pub coupon_url: Option<String>,
pub gift_coupon_key: Option<String>,
}
impl JDRequest for JdPromotionUrlGenerateRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::PromotionUrlGenerate
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdOrderRequest {
pub order_req: JdOrderRecentQueryParam,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdOrderRecentQueryParam {
pub page_no: Option<u64>,
pub page_size: Option<u64>,
#[serde(rename = "type")]
pub bill_type: u8,
pub time: String,
pub child_union_id: Option<u64>,
pub key: Option<String>,
}
#[allow(deprecated)]
impl JDRequest for JdOrderRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::OrderRecentQuery
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdOrderRawQueryParam {
pub page_index: Option<u64>,
pub page_size: Option<u64>,
#[serde(rename = "type")]
pub bill_type: u8,
pub start_time: String,
pub end_time: String,
pub child_union_id: Option<u64>,
pub key: Option<String>,
pub fields: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdOrderRawRequest {
pub order_req: JdOrderRawQueryParam,
}
impl JDRequest for JdOrderRawRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::OrderRawQuery
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdPromotionCodeGetRequest {
pub req: JdPromotionCodeGetParam
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdPromotionCodeGetParam {
pub material_id: String,
pub site_id: String,
pub chain_type: Option<u8>,
pub coupon_url: Option<String>,
pub position_id: Option<u64>,
pub sub_union_id: Option<String>,
pub ext1: Option<String>,
pub pid: Option<String>,
pub union_id: Option<u64>,
}
impl JDRequest for JdPromotionCodeGetRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::PromotionCodeGet
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdPromotionBySubUnionIdGetRequest {
pub promotion_code_req: JdPromotionBySubUnionIdGetParam
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JdPromotionBySubUnionIdGetParam {
pub material_id: String,
pub chain_type: Option<u8>,
pub coupon_url: Option<String>,
pub position_id: Option<u64>,
pub sub_union_id: Option<String>,
pub pid: Option<String>,
pub channel_id: Option<u64>,
pub command: Option<u8>,
pub gift_coupon_key: Option<String>,
}
impl JDRequest for JdPromotionBySubUnionIdGetRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::PromotionBySubUnionIdGet
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SellingGoodsQueryRequest {
pub req: SellingGoodsQueryParam
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SellingGoodsQueryParam {
pub sku_ids: Vec<u64>,
}
impl JDRequest for SellingGoodsQueryRequest {
fn get_api_method_name(&self) -> JDMethod {
JDMethod::SellingGoodsQuery
}
fn get_text_params(&self) -> BTreeMap<String, String> {
BTreeMap::from([("360buy_param_json".to_owned(), serde_json::to_string(self).unwrap_or_default())])
}
}