using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Diagnostics.CodeAnalysis; using System.Text.Json; namespace FreeTubeSync.Model; [SuppressMessage("ReSharper", "InconsistentNaming")] public class Setting { [Key] #pragma warning disable CS8618 public string _id { get; set; } = string.Empty; public string? ValueJson { get; set; } #pragma warning restore CS8618 [NotMapped] public object Value { #pragma warning disable CS8603 get => string.IsNullOrEmpty(ValueJson) ? null : JsonSerializer.Deserialize(ValueJson); #pragma warning restore CS8603 set => ValueJson = JsonSerializer.Serialize(value); } public void Update(Setting other) { Value = other.Value; } }