namespace OFACScraper.Configuration;

public class OFACOptions
{
    public const string SectionName = "OFAC";

    public string BaseUrl { get; set; } = "https://ofac.treasury.gov";
    public string YearUrlTemplate { get; set; } = "/civil-penalties-and-enforcement-information/{0}-enforcement-information";
    public int StartYear { get; set; } = 2003;
    public string UserAgent { get; set; } = "Mozilla/5.0 (compatible; OFACBot/1.0; +https://ukdataservices.co.uk)";
    public int RequestDelayMs { get; set; } = 1000;
}

public class StorageOptions
{
    public const string SectionName = "Storage";

    public string DatabasePath { get; set; } = "data/ofac.db";
    public string ExportDirectory { get; set; } = "data/exports";
    public string DownloadDirectory { get; set; } = "data/downloads";
}

public class S3Options
{
    public const string SectionName = "S3";

    public string? BucketName { get; set; }
    public string? AccessKeyId { get; set; }
    public string? SecretAccessKey { get; set; }
    public string Region { get; set; } = "eu-west-3";
    public string Prefix { get; set; } = "ofac";

    public bool IsConfigured =>
        !string.IsNullOrWhiteSpace(BucketName) &&
        !string.IsNullOrWhiteSpace(AccessKeyId) &&
        !string.IsNullOrWhiteSpace(SecretAccessKey);
}
