use serde::{Deserialize, Serialize};
use crate::modules::civilization::{
Conflict, Economy, Faction, Government, Superpower, SystemSecurity, ThargoidWar,
};
use crate::modules::galaxy::BodyType;
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct LocationInfo {
pub star_system: String,
pub system_address: u64,
pub star_pos: [f32; 3],
pub system_alliance: Option<Superpower>,
pub system_economy: Economy,
#[serde(rename = "SystemEconomy_Localised")]
pub system_economy_localized: Option<String>,
pub system_second_economy: Economy,
#[serde(rename = "SystemSecondEconomy_Localised")]
pub system_second_economy_localized: Option<String>,
pub system_government: Government,
#[serde(rename = "SystemGovernment_Localised")]
pub system_government_localized: Option<String>,
pub system_security: SystemSecurity,
#[serde(rename = "SystemSecurity_Localised")]
pub system_security_localized: Option<String>,
pub population: u64,
pub body: String,
#[serde(rename = "BodyID")]
pub body_id: u8,
pub body_type: BodyType,
#[serde(default)]
pub factions: Vec<Faction>,
#[serde(default)]
pub conflicts: Vec<Conflict>,
pub thargoid_war: Option<ThargoidWar>,
}