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);
}
}