using PARR.Core.Services.UnitFilterService.Models;
using PARR.Domain.Entities.Job;

namespace PARR.TemplateMatcher.Services.Interfaces
{
    public interface IGroupedTemplateUnitFilter
    {
        /// <summary>
        /// Применяет специфичные правила фильтрации для групповых шаблонов.
        /// 1. Отбирает юниты, имеющие заполненное значение в GroupingUnitFieldId.
        /// 2. Оставляет только юниты, значение которых в поле РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК разрешено.
        /// </summary>
        Task<List<UnitFilterResultDto>> FilterAsync(
            IEnumerable<UnitFilterResultDto> initialUnits,
            JobGroup jobGroup,
            CancellationToken ct = default);
    }
}
