use {
crate::elite::{
allegiance::Allegiance, economy::Economy, faction::Faction, goverment::Goverment,
},
serde::Deserialize,
};
#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StationEconomy {
#[serde(alias = "Name")] pub economy_type: Economy,
pub proportion: f64,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum StationService {
Dock,
Autodock,
BlackMarket,
Commodities,
Contacts,
Exploration,
Rearm,
Missions,
#[serde(other)]
Unknown,
}
#[derive(Debug, Deserialize)]
pub enum StationType {
Coriolis,
Dodec,
Orbis,
Ocellus,
Outpost,
CraterOutpost,
CraterPort,
SurfaceStation,
OnFootSettlement,
MegaShip,
FleetCarrier,
Bernal,
AsteroidBase,
PlanetaryConstructionDepot,
SpaceConstructionDepot,
#[serde(other)]
Unknown,
}
#[derive(Debug, Deserialize)]
pub enum StationState {
Construction,
UnderAttack,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Station {
pub station_allegiance: Allegiance,
pub station_economies: Vec<StationEconomy>,
pub station_economy: Economy,
pub system_second_economy: Option<Economy>,
pub station_faction: Faction,
pub station_goverment: Goverment,
pub station_services: Vec<StationService>,
pub station_state: Option<StationState>,
pub station_type: Option<StationType>,
pub system_security: Option<String>,
#[serde(alias = "SystemSecurity_Localised")]
pub system_security_display: Option<String>,
}