using System.ComponentModel.DataAnnotations;

namespace TakeoutSaaS.Module.Scheduler.Options;

/// <summary>
/// 调度模块配置。
/// </summary>
public sealed class SchedulerOptions
{
    /// <summary>
    /// Hangfire 存储使用的连接字符串。
    /// </summary>
    [Required]
    public string ConnectionString { get; set; } = string.Empty;

    /// <summary>
    /// 工作线程数，默认根据 CPU 计算。
    /// </summary>
    [Range(1, 100)]
    public int? WorkerCount { get; set; }

    /// <summary>
    /// 是否启用 Dashboard（默认 false，待 AdminUI 接入）。
    /// </summary>
    public bool DashboardEnabled { get; set; }

    /// <summary>
    /// Dashboard 路径。
    /// </summary>
    public string DashboardPath { get; set; } = "/hangfire";
}
