use crate::entity::{MerchantApiDeliveryInfo, MerchantApiRating, MerchantApiSpell};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct MerchantApiAmazonProducts {
pub keyword: Option<String>,
#[serde(rename = "type")]
pub result_type: Option<String>,
pub se_domain: Option<String>,
pub location_code: Option<i32>,
pub language_code: Option<String>,
pub check_url: Option<String>,
pub datetime: Option<String>,
pub spell: Option<MerchantApiSpell>,
pub item_types: Option<Vec<String>>,
pub se_results_count: Option<i64>,
pub categories: Option<Vec<Value>>,
pub items_count: Option<i64>,
pub items: Option<Vec<MerchantApiAmazonProductsItem>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct MerchantApiAmazonProductsItem {
#[serde(rename = "type")]
pub item_type: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub position: Option<String>,
pub xpath: Option<String>,
pub domain: Option<String>,
pub title: Option<String>,
pub url: Option<String>,
pub image_url: Option<String>,
pub bought_past_month: Option<i64>,
pub price_from: Option<f64>,
pub price_to: Option<f64>,
pub currency: Option<String>,
pub special_offers: Option<Vec<Value>>,
pub data_asin: Option<String>,
pub rating: Option<MerchantApiRating>,
pub is_amazon_choice: Option<bool>,
pub is_best_seller: Option<bool>,
pub delivery_info: Option<MerchantApiDeliveryInfo>,
}