using PARR.DAL.NextRunServices.Models; namespace PARR.DAL.NextRunServices.Subservices { internal interface ITemplateDistributor { /// /// Распределяет все шаблоны на указанный период, учитывая план нагрузки. /// Возвращает список всех шаблонов с обновлёнными датами выполнения. /// /// Дата начала распределения /// Длительность распределения, дней /// ReferenceDate /// Спиоск шаблонов для распределения /// Исключать выходные из распределения /// Task> DistributeTemplatesAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, List allTemplates, bool excludeWeekends); /// /// Возвращает актуальную дату выполнения для одного шаблона, учитывая план нагрузки. /// Возвращает обновлённый шаблон с новой датой выполнения. /// /// /// /// /// /// /// /// Новый шаблон /// Task GetValidNextRunForTemplateAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, TemplateNextRunDto targetTemplate, List allTemplates, bool excludeWeekends, bool isNew); /// /// Получить список выходных дней /// /// /// /// /// Task> GetWeekendsV2Async(DateOnly startDate, DateOnly endDate, DateTimeOffset referenceDate); ///// ///// Получить список рабочих дней ///// ///// ///// ///// ///// //Task> GetWorkDaysAsync(DateOnly start, DateOnly end, bool excludeWeekends); /// /// Получить список рабочих дней /// /// /// /// /// /// Task> GetWorkDaysV2Async(DateOnly start, DateOnly end, bool excludeWeekends, DateTimeOffset referenceDate); } }