using PARR.DAL.Models.Job;
using PARR.DAL.NextRunServices.Models;
namespace PARR.DAL.NextRunServices
{
public interface INextRunService
{
///
/// Получить продолжительность распределения в днях
///
///
///
int GetDurationDays(JobGroupDistributionConfig config);
///
/// Получить список TemplateId, NextRun по jobGroupId с автораспределением (распределить шаблоны в группе работ)
///
///
///
Task?> GetNextRunForJobGroupWithAutoDistributionAsync(Guid jobGroupId);
///
/// Получить NextRun по jobGroupId с расписанием ЕСПП
///
///
///
Task GetNextRunForJobGroupWithEsppSchedulleAsync(Guid jobGroupId);
///
/// Получить nextRun для создаваемого шаблона, которого еще нет в БД
///
///
///
Task GetNextRunForNewTemplateAsync(Guid jobGroupId);
///
/// Получить NextRun по id существующего шаблона
///
///
/// Шаблон переведенный из unused
///
Task GetNextRunForTemplateAsync(Guid templateId, bool isNew);
///
/// Получить список рабочих дней
///
///
///
///
///
Task> GetWorkDaysAsync(DateOnly start, DateOnly end, bool excludeWeekends, DateTimeOffset referenceDate);
///
/// Получить список выходных дней
///
///
///
///
///
Task> GetWeekendsAsync(DateOnly startDate, DateOnly endDate, DateTimeOffset referenceDate);
}
}