use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::models::common::JsonObject;
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Bazaar {
#[serde(rename = "lastUpdated", default)]
pub last_updated: i64,
#[serde(default)]
pub products: HashMap<String, BazaarProduct>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct BazaarProduct {
#[serde(default)]
pub product_id: String,
#[serde(default)]
pub sell_summary: Vec<BazaarOrder>,
#[serde(default)]
pub buy_summary: Vec<BazaarOrder>,
#[serde(default)]
pub quick_status: Option<BazaarQuickStatus>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct BazaarOrder {
#[serde(default)]
pub amount: i64,
#[serde(rename = "pricePerUnit", default)]
pub price_per_unit: f64,
#[serde(default)]
pub orders: i64,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct BazaarQuickStatus {
#[serde(rename = "productId", default)]
pub product_id: String,
#[serde(rename = "sellPrice", default)]
pub sell_price: f64,
#[serde(rename = "sellVolume", default)]
pub sell_volume: i64,
#[serde(rename = "sellMovingWeek", default)]
pub sell_moving_week: i64,
#[serde(rename = "sellOrders", default)]
pub sell_orders: i64,
#[serde(rename = "buyPrice", default)]
pub buy_price: f64,
#[serde(rename = "buyVolume", default)]
pub buy_volume: i64,
#[serde(rename = "buyMovingWeek", default)]
pub buy_moving_week: i64,
#[serde(rename = "buyOrders", default)]
pub buy_orders: i64,
#[serde(flatten)]
pub extra: JsonObject,
}