using PARR.DAL.NextRunServices.Models; namespace PARR.DAL.NextRunServices.Subservices { //todo: public -> internal!!! public 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); } }