using JetBrains.Annotations; using YamlDotNet.Serialization; namespace TrashLib.Config.Services; public abstract class ServiceConfiguration : IServiceConfiguration { // Name is set dynamically by ConfigurationLoader [YamlIgnore] public string? Name { get; set; } public string BaseUrl { get; set; } = ""; public string ApiKey { get; set; } = ""; public ICollection CustomFormats { get; init; } = new List(); public bool DeleteOldCustomFormats { get; init; } public QualityDefinitionConfig? QualityDefinition { get; init; } } [UsedImplicitly(ImplicitUseTargetFlags.WithMembers)] public class CustomFormatConfig { public ICollection TrashIds { get; init; } = new List(); public ICollection QualityProfiles { get; init; } = new List(); } [UsedImplicitly(ImplicitUseTargetFlags.WithMembers)] public class QualityProfileScoreConfig { public string Name { get; init; } = ""; public int? Score { get; init; } public bool ResetUnmatchedScores { get; init; } } [UsedImplicitly(ImplicitUseTargetFlags.WithMembers)] public class QualityDefinitionConfig { public string Type { get; init; } = ""; public decimal? PreferredRatio { get; set; } }