use serde::{Deserialize, Serialize};
use serde_json::Value;
use crate::models::common::JsonObject;
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Museum {
#[serde(default)]
pub value: i64,
#[serde(default)]
pub appraisal: bool,
#[serde(default)]
pub items: Value,
#[serde(default)]
pub special: Vec<Value>,
#[serde(flatten)]
pub extra: JsonObject,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Garden {
#[serde(default)]
pub uuid: String,
#[serde(rename = "garden_experience", default)]
pub garden_experience: i64,
#[serde(default)]
pub commission_data: Option<Value>,
#[serde(default)]
pub composter_data: Option<Value>,
#[serde(default)]
pub active_commissions: Option<Value>,
#[serde(default)]
pub resources_collected: Option<Value>,
#[serde(default)]
pub crop_upgrade_levels: Option<Value>,
#[serde(default)]
pub unlocked_plots_ids: Vec<String>,
#[serde(default)]
pub unlocked_barn_skins: Vec<String>,
#[serde(default)]
pub selected_barn_skin: Option<String>,
#[serde(flatten)]
pub extra: JsonObject,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct FireSale {
#[serde(default)]
pub item_id: String,
#[serde(default)]
pub start: i64,
#[serde(default)]
pub end: i64,
#[serde(default)]
pub amount: i64,
#[serde(default)]
pub price: i64,
#[serde(flatten)]
pub extra: JsonObject,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct NewsItem {
#[serde(default)]
pub item: Value,
#[serde(default)]
pub link: String,
#[serde(default)]
pub title: String,
#[serde(default)]
pub text: String,
#[serde(flatten)]
pub extra: JsonObject,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct MuseumResponse {
pub profile: Option<Museum>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct GardenResponse {
pub garden: Option<Garden>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct FireSalesResponse {
#[serde(default)]
pub sales: Vec<FireSale>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct NewsResponse {
#[serde(default)]
pub items: Vec<NewsItem>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct BingoEventsResponse {
#[serde(default)]
pub events: Vec<Value>,
}