using System.ComponentModel.DataAnnotations;

namespace Common.Configuration;

public sealed class QBitConfig : IConfig
{
    public const string SectionName = "qBittorrent";
    
    public required bool Enabled { get; init; }
    
    public Uri? Url { get; init; }
    
    public string? Username { get; init; }
    
    public string? Password { get; init; }
    
    public void Validate()
    {
        if (!Enabled)
        {
            return;
        }

        if (Url is null)
        {
            throw new ArgumentNullException(nameof(Url));
        }
    }
}