using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System.ComponentModel; namespace ModpackUpdater; public class InstallAction { [DefaultValue(null)] public string Id { get; set; } [DefaultValue(null)] public string Name { get; set; } [DefaultValue(null)] public string Website { get; set; } [DefaultValue(false)] public bool IsZip { get; set; } [DefaultValue(null)] public string ZipPath { get; set; } [DefaultValue(null)] public string DestPath { get; set; } [DefaultValue(null)] public string SourceUrl { get; set; } [DefaultValue(SourceType.DirectLink)] [JsonConverter(typeof(StringEnumConverter))] public SourceType SourceType { get; set; } [DefaultValue(null)] public string SourceOwner { get; set; } [DefaultValue(null)] public string SourceName { get; set; } [DefaultValue(null)] public string SourceRegex { get; set; } [DefaultValue(null)] public string SourceTag { get; set; } [DefaultValue(Side.Both)] [JsonConverter(typeof(StringEnumConverter))] public Side Side { get; set; } = Side.Both; [DefaultValue(false)] public bool IsExtra { get; set; } [JsonProperty, Obsolete] private string DownloadUrl { set => SourceUrl = value; } }