using System.Collections.Immutable; using System.Text.Json.Serialization; using Observatory.Framework.Files.Converters; using Observatory.Framework.Files.ParameterTypes; namespace Observatory.Framework.Files.Journal.Travel; public class Docked : JournalBase { public override string Event => "Docked"; /// /// Name of the station at which this event occurred. /// public string StationName { get; init; } public string StationType { get; init; } public string StarSystem { get; init; } public ulong SystemAddress { get; init; } public ulong MarketID { get; init; } [JsonConverter(typeof(LegacyFactionConverter))] public Faction StationFaction { get; init; } [Obsolete(JournalUtilities.ObsoleteMessage), JsonConverter(typeof(LegacyFactionConverter))] public Faction Faction { private get => StationFaction; init => StationFaction = value; } [Obsolete(JournalUtilities.ObsoleteMessage)] public string FactionState { private get => StationFaction.FactionState; init { //Stale Data, discard } } public string StationGovernment { get; init; } [Obsolete(JournalUtilities.ObsoleteMessage)] public string Government { private get => StationGovernment; init => StationGovernment = value; } public string StationGovernment_Localised { get; init; } [Obsolete(JournalUtilities.ObsoleteMessage)] public string Government_Localised { private get => StationGovernment_Localised; init => StationGovernment_Localised = value; } public string StationAllegiance { get; init; } [Obsolete(JournalUtilities.ObsoleteMessage)] public string Allegiance { private get => StationAllegiance; init => StationAllegiance = value; } [JsonConverter(typeof(StationServiceConverter))] public StationService StationServices { get; init; } public string StationEconomy { get; init; } [Obsolete(JournalUtilities.ObsoleteMessage)] public string Economy { private get => StationEconomy; init => StationEconomy = value; } public string StationEconomy_Localised { get; init; } [Obsolete(JournalUtilities.ObsoleteMessage)] public string Economy_Localised { private get => StationEconomy_Localised; init => StationEconomy_Localised = value; } public List StationEconomies { get; init; } [Obsolete("StationState is a rundundant property. Use StationEconomy to potentially reduce unnecessary checks.")] public string StationState { get; init; } public float DistFromStarLS { get; init; } public bool Wanted { get; init; } public bool ActiveFine { get; init; } public bool CockpitBreach { get; init; } public bool Taxi { get; init; } public bool Multicrew { get; init; } }