feat(api,dal): статистика распределения. Список рабочих и выходных формируется в зависимости от времени МСК

This commit is contained in:
Mikhail Trubnikov
2026-01-28 14:40:40 +10:00
parent e60fbfdc3a
commit 76bd6aa111
9 changed files with 209 additions and 26 deletions

View File

@@ -2,7 +2,8 @@
namespace PARR.DAL.NextRunServices.Subservices
{
internal interface ITemplateDistributor
//TODO: internal
public interface ITemplateDistributor
{
/// <summary>
/// Распределяет все шаблоны на указанный период, учитывая план нагрузки.
@@ -31,6 +32,16 @@ namespace PARR.DAL.NextRunServices.Subservices
/// <param name="isNew">Новый шаблон</param>
/// <returns></returns>
Task<TemplateNextRunResultDto> GetValidNextRunForTemplateAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, TemplateNextRunDto targetTemplate, List<TemplateNextRunDto> allTemplates, bool excludeWeekends, bool isNew);
/// <summary>
/// Получить список выходных дней
/// </summary>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="referenceDate"></param>
/// <returns></returns>
Task<HashSet<DateOnly>> GetWeekendsTESTAsync(DateOnly startDate, DateOnly endDate, DateTimeOffset referenceDate);
/// <summary>
@@ -41,6 +52,10 @@ namespace PARR.DAL.NextRunServices.Subservices
/// <param name="excludeWeekends"></param>
/// <returns></returns>
Task<List<DateOnly>> GetWorkDaysAsync(DateOnly start, DateOnly end, bool excludeWeekends);
Task<List<DateOnly>> GetWorkDaysTESTAsync(DateOnly start, DateOnly end, bool excludeWeekends, DateTimeOffset referenceDate);
}
}