use crate::entity::{MerchantApiRating, MerchantApiSpell};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct MerchantApiAmazonAsin {
pub asin: 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 items_count: Option<i64>,
pub items: Option<Vec<MerchantApiAmazonProductInfoItem>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct MerchantApiAmazonProductInfoItem {
#[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 title: Option<String>,
pub details: Option<String>,
pub image_url: Option<String>,
pub author: Option<String>,
pub data_asin: Option<String>,
pub parent_asin: Option<String>,
pub product_asins: Option<Vec<String>>,
pub price_from: Option<f64>,
pub price_to: Option<f64>,
pub percentage_discount: Option<f64>,
pub currency: Option<String>,
pub is_amazon_choice: Option<bool>,
pub rating: Option<MerchantApiRating>,
pub is_newer_model_available: Option<bool>,
pub is_prime_video: Option<bool>,
pub applicable_vouchers: Option<Vec<Value>>,
pub newer_model: Option<Value>,
pub categories: Option<Vec<Value>>,
pub product_information: Option<Vec<Value>>,
pub product_images_list: Option<Vec<String>>,
pub product_videos_list: Option<Vec<String>>,
pub description: Option<String>,
pub is_available: Option<bool>,
pub top_local_reviews: Option<Vec<Value>>,
pub top_global_reviews: Option<Vec<Value>>,
}