using PARR.DAL.NextRunServices.Models; namespace PARR.DAL.NextRunServices.Subservices { internal interface ITemplateDistributorV2 { /// /// Распределить шаблоны /// /// Дата начала, в любом часовом поясе /// /// /// /// /// /// Task> DistributeTemplatesAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, TimeSpan? offset, List allTemplates, bool excludeWeekends); /// /// Метод проверяет, актуален ли текущий NextRun шаблона, если не актуален, возвращает актуальное значение /// При проверке загружаются шаблоны из БД! Если хотим рассчитывать nextRun для НЕСКОЛЬКИХ шаблонов, то следует рассчитать nextRun для одного шаблона, сохранить в БД, затем рассчитать для следующего /// /// Дата начала, в любом часовом поясе /// /// /// /// /// /// /// /// Task GetNextRunForTemplateAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, TimeSpan? offset, TemplateNextRunDto targetTemplate, List allTemplates, bool excludeWeekends, bool isNew); /// /// Получить список выходных дней /// /// /// /// Task> GetWeekendsAsync(DateOnly startDate, DateOnly endDate); /// /// Получить список рабочих дней в диапазоне, исключая выходные и праздники. /// /// /// /// Исключить выходные и праздники /// Task> GetWorkDaysAsync(DateOnly start, DateOnly end, bool excludeWeekends); } }