skyblock_repo/models/
zone.rs1#[cfg(feature = "python")]
2use pyo3::{pyclass, pymethods};
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5#[cfg(feature = "python")]
6use skyblock_repo_macros::PyStr;
7
8use crate::models::Coordinates;
9
10#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
11#[serde(rename_all = "camelCase")]
12#[cfg_attr(feature = "python", pyclass, derive(PyStr))]
13pub struct SkyblockZone {
14 #[serde(default)]
15 pub internal_id: String,
16 pub name: Option<String>,
17 pub source: Option<String>,
18 pub discovery_text: Option<String>,
19 #[serde(default)]
20 pub npcs: Vec<Value>,
21 #[serde(default)]
22 pub mobs: Vec<Value>,
23 #[serde(default)]
24 pub mob_drops: Vec<Value>,
25 #[serde(default)]
26 pub fairy_souls: Vec<FairySoul>,
27}
28
29#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
30#[cfg_attr(feature = "python", pyclass, derive(PyStr))]
31pub struct FairySoul {
32 pub location: Option<String>,
33 #[serde(default)]
34 pub number: i32,
35 pub coordinates: Option<Coordinates>,
36}