use crate::entity::{MerchantApiDeliveryInfo, MerchantApiRating, MerchantApiSpell};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct MerchantApiGoogleProducts {
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 items_count: Option<i64>,
pub items: Option<Vec<MerchantApiGoogleProductsItem>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct MerchantApiGoogleProductsItem {
#[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 description: Option<String>,
pub url: Option<String>,
pub shopping_url: Option<String>,
pub tags: Option<Vec<String>>,
pub price: Option<f64>,
pub price_multiplier: Option<f64>,
pub old_price: Option<f64>,
pub currency: Option<String>,
pub product_id: Option<String>,
pub data_docid: Option<String>,
pub seller: Option<String>,
pub additional_specifications: Option<Value>,
pub reviews_count: Option<i64>,
pub is_best_match: Option<bool>,
pub product_rating: Option<MerchantApiRating>,
pub shop_rating: Option<MerchantApiRating>,
pub product_images: Option<Vec<String>>,
pub shop_ad_aclk: Option<String>,
pub delivery_info: Option<MerchantApiDeliveryInfo>,
pub stores_count_info: Option<Value>,
pub gid: Option<String>,
}