using System.Text.Json.Serialization; namespace Adaptation.FileHandlers.Priority; #nullable enable public class Notification { [JsonConstructor] public Notification(int? fibonacci, string id, int? inverse, string? machineId, string page, string? site, string time, string? username, string? value) { int? i = inverse is not null ? inverse : GetInverse(value); Fibonacci = fibonacci is not null ? fibonacci : i is null ? null : GetFibonacci(i.Value); Id = id; Inverse = i; MachineId = machineId; Page = page; Site = site is not null ? site : "MES"; Time = time; Username = username; Value = value; } [JsonPropertyName("id")] public string Id { get; } [JsonPropertyName("fibonacci")] public int? Fibonacci { get; } [JsonPropertyName("inverse")] public int? Inverse { get; } [JsonPropertyName("machineId")] public string? MachineId { get; } [JsonPropertyName("page")] public string Page { get; } [JsonPropertyName("site")] public string? Site { get; } [JsonPropertyName("time")] public string Time { get; } [JsonPropertyName("username")] public string? Username { get; } [JsonPropertyName("value")] public string? Value { get; } internal static int? GetInverse(string? value) => value switch { "1" => 5, "2" => 4, "3" => 3, "4" => 2, "5" => 1, _ => null }; private static int? GetFibonacci(int value) => value switch { 9 => 55, 8 => 34, 7 => 21, 6 => 13, 5 => 8, 4 => 5, 3 => 3, 2 => 2, 1 => 1, _ => null }; } [JsonSourceGenerationOptions(WriteIndented = true)] [JsonSerializable(typeof(Notification))] public partial class NotificationSourceGenerationContext : JsonSerializerContext { }