using PARR.Domain.Entities.JobEntities;

namespace PARR.Core.Services.UnitFilterService.Matchers.Interfaces
{
    /// <summary>
    /// Сопоставляет юниты с фильтрами по полям.
    /// </summary>
    public interface IUnitFieldMatcher
    {
        /// <summary>
        /// Возвращает ID юнитов, прошедших все указанные фильтры.
        /// </summary>
        Task<List<Guid>> MatchAsync(
            IReadOnlyList<Guid> unitIds,
            IEnumerable<JobFieldFilter> fieldFilters,
            CancellationToken ct = default);
    }
}
