using System.ComponentModel.DataAnnotations;

namespace TakeoutSaaS.Module.Storage.Options;

/// <summary>
/// 阿里云 OSS 访问配置。
/// </summary>
public sealed class AliyunOssOptions
{
    /// <summary>
    /// 访问密钥 ID。
    /// </summary>
    [Required]
    public string AccessKeyId { get; set; } = string.Empty;

    /// <summary>
    /// 访问密钥 Secret。
    /// </summary>
    [Required]
    public string AccessKeySecret { get; set; } = string.Empty;

    /// <summary>
    /// Endpoint，如 https://oss-cn-hangzhou.aliyuncs.com。
    /// </summary>
    [Required]
    [Url]
    public string Endpoint { get; set; } = string.Empty;

    /// <summary>
    /// 目标存储桶名称。
    /// </summary>
    [Required]
    public string Bucket { get; set; } = string.Empty;

    /// <summary>
    /// CDN 加速域名（可选）。
    /// </summary>
    [Url]
    public string? CdnBaseUrl { get; set; }

    /// <summary>
    /// 是否默认使用 HTTPS。
    /// </summary>
    public bool UseHttps { get; set; } = true;
}
