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); } }