using System.ComponentModel.DataAnnotations.Schema; using System.Runtime.Serialization; using System.Text.Json.Serialization; using Observatory.Framework.Files.Converters; using Observatory.Framework.Files.ParameterTypes; namespace Observatory.Framework.Files.Journal.Travel; public class Location : JournalBase { public override string Event => "Location"; [JsonConverter(typeof(IntBoolFlexConverter))] public bool Docked { get; init; } public double? DistFromStarLS { get; init; } /// /// Name of the station at which this event occurred. /// public string? StationName { get; init; } public string? StationType { get; init; } public float? Longitude { get; init; } public float? Latitude { get; init; } public ulong? MarketID { get; init; } [JsonConverter(typeof(LegacyFactionConverter))] public Faction? StationFaction { get; init; } public string? StationGovernment { get; init; } public string? StationGovernment_Localised { get; init; } public string? StationAllegiance { get; init; } public List? StationServices { get; init; } public string? StationEconomy { get; init; } public string? StationEconomy_Localised { get; init; } public List StationEconomies { get; init; } public string StarSystem { get; init; } public ulong? SystemAddress { get; init; } [JsonConverter(typeof(StarPosConverter))] public StarPos StarPos { get; init; } public string SystemAllegiance { get; init; } public string SystemEconomy { get; init; } public string SystemEconomy_Localised { get; init; } public string? SystemSecondEconomy { get; init; } public string? SystemSecondEconomy_Localised { get; init; } public string SystemGovernment { get; init; } public string SystemGovernment_Localised { get; init; } public string SystemSecurity { get; init; } public string SystemSecurity_Localised { get; init; } public long? Population { get; init; } public string Body { get; init; } public int? BodyID { get; init; } public string BodyType { get; init; } public List? Factions { get; init; } [JsonConverter(typeof(LegacyFactionConverter))] [NotMapped] public Faction? SystemFaction { get; init; } public List? Conflicts { get; init; } public List? Powers { get; init; } public string? PowerplayState { get; init; } public bool? Taxi { get; init; } public bool? Multicrew { get; init; } public bool? OnFoot { get; init; } public bool? InSRV { get; init; } public ThargoidWar? ThargoidWar { get; init; } } public class StarPos { public double X { get; set; } public double Y { get; set; } public double Z { get; set; } }