namespace TeleWave.Application.Broadcast.Scheduling;

public sealed class SchedulerOptions
{
    public const string SectionName = "Scheduler";

    /// <summary>
    /// На сколько дней вперёд держать материализованное расписание. Неделя — часть замысла:
    /// «знать, что мультики будут в субботу в 9:30» работает, только если программа известна заранее.
    /// </summary>
    public int HorizonDays { get; init; } = 7;

    /// <summary>
    /// Сколько дней прошедшего расписания хранить. Должно покрывать самое долгое остывание среди правил
    /// канала и самый глубокий повтор: история показов берётся из самой ленты, отдельного журнала нет.
    /// </summary>
    public int RetentionDays { get; init; } = 90;

    /// <summary>Период тика фонового планировщика, минуты.</summary>
    public int TickMinutes { get; init; } = 30;
}
