use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct Station {
  pub max_dockable_ship_volume: f32,
  pub name: String,
  pub office_rental_cost: f32,
  pub owner: i64,
  pub position: Position,
  pub race_id: i32,
  pub reprocessing_efficiency: f32,
  pub reprocessing_stations_take: f32,
  pub services: Vec<String>,
  pub station_id: i64,
  pub system_id: i32,
  pub type_id: i32,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct System {
  pub constellation_id: i32,
  pub name: String,
  pub planets: Option<Vec<Planet>>,
  pub position: Position,
  pub security_class: Option<String>,
  pub security_status: f32,
  pub star_id: Option<i32>,
  pub stargates: Option<Vec<i32>>,
  pub stations: Option<Vec<i64>>,
  pub system_id: i32,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Planet {
  pub asteroid_belts: Option<Vec<i32>>,
  pub moons: Option<Vec<i32>>,
  pub planet_id: i32,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Position {
  pub x: f32,
  pub y: f32,
  pub z: f32,
}
