using System.Globalization; using System.Text.Json.Serialization; using Observatory.Framework.Files.Converters; using Observatory.Framework.Files.ParameterTypes; namespace Observatory.Framework.Files.Journal.StationServices; public class MissionAccepted : JournalBase { public override string Event => "MissionAccepted"; public string Name { get; init; } public string LocalisedName { get; init; } public string Faction { get; init; } public ulong MissionID { get; init; } [JsonConverter(typeof(MissionEffectConverter))] public MissionEffect Influence { get; init; } [JsonConverter(typeof(MissionEffectConverter))] public MissionEffect Reputation { get; init; } public long Reward { get; init; } public string Commodity { get; init; } public string Commodity_Localised { get; init; } public int Count { get; init; } public string Donation { get; init; } public int Donated { get; init; } public string Target { get; init; } public string Target_Localised { get; init; } public string TargetType { get; init; } public string TargetType_Localised { get; init; } public string TargetFaction { get; init; } public int KillCount { get; init; } public string Expiry { get; init; } public DateTime ExpiryDateTime { get { if (DateTime.TryParseExact(Expiry, "yyyy-MM-ddTHH:mm:ssZ", null, DateTimeStyles.AssumeUniversal, out var expiryDateTime)) { return expiryDateTime; } return new DateTime(); } } public string DestinationSystem { get; init; } public string DestinationStation { get; init; } public string DestinationSettlement { get; init; } public string NewDestinationSystem { get; init; } public string NewDestinationStation { get; init; } public int PassengerCount { get; init; } public bool PassengerVIPs { get; init; } public bool PassengerWanted { get; init; } public string PassengerType { get; init; } public bool Wing { get; init; } }