hypixel/models/skyblock/
bazaar.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::models::common::JsonObject;
6
7#[derive(Debug, Clone, Deserialize, Serialize)]
9pub struct Bazaar {
10 #[serde(rename = "lastUpdated", default)]
11 pub last_updated: i64,
12 #[serde(default)]
13 pub products: HashMap<String, BazaarProduct>,
14}
15
16#[derive(Debug, Clone, Deserialize, Serialize)]
18pub struct BazaarProduct {
19 #[serde(default)]
20 pub product_id: String,
21 #[serde(default)]
22 pub sell_summary: Vec<BazaarOrder>,
23 #[serde(default)]
24 pub buy_summary: Vec<BazaarOrder>,
25 #[serde(default)]
26 pub quick_status: Option<BazaarQuickStatus>,
27}
28
29#[derive(Debug, Clone, Deserialize, Serialize)]
31pub struct BazaarOrder {
32 #[serde(default)]
33 pub amount: i64,
34 #[serde(rename = "pricePerUnit", default)]
35 pub price_per_unit: f64,
36 #[serde(default)]
37 pub orders: i64,
38}
39
40#[derive(Debug, Clone, Deserialize, Serialize)]
42pub struct BazaarQuickStatus {
43 #[serde(rename = "productId", default)]
44 pub product_id: String,
45 #[serde(rename = "sellPrice", default)]
46 pub sell_price: f64,
47 #[serde(rename = "sellVolume", default)]
48 pub sell_volume: i64,
49 #[serde(rename = "sellMovingWeek", default)]
50 pub sell_moving_week: i64,
51 #[serde(rename = "sellOrders", default)]
52 pub sell_orders: i64,
53 #[serde(rename = "buyPrice", default)]
54 pub buy_price: f64,
55 #[serde(rename = "buyVolume", default)]
56 pub buy_volume: i64,
57 #[serde(rename = "buyMovingWeek", default)]
58 pub buy_moving_week: i64,
59 #[serde(rename = "buyOrders", default)]
60 pub buy_orders: i64,
61 #[serde(flatten)]
62 pub extra: JsonObject,
63}