using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using GB5Shared.DTO.Framework.Login;
namespace GB5Shared.ValidationCriteria
{
///
/// Shared evaluator any module's eligibility check calls instead of writing its own gating join.
/// EntityType follows GB5Shared.DTO.Framework.Taxonomy.TaxonomyEntityTypeConstant's numbering.
///
public interface IValidationCriteriaEvaluator
{
/// Returns only the criteria that are NOT currently met for this employee/entity —
/// an empty list means fully eligible. entityStepId = -1 for entity-level only, or -2 for
/// "all levels" (entity-level + every step).
Task> GetUnmetValidationCriteriaAsync(
short entityType, int entityId, int entityStepId, int employeeId, LoginDTO login, CancellationToken ct);
}
}