GateEvaluatorInterface
Interface que define cómo se evalúa un gate. Los implementadores leen la configuración del GateDefinition (tipo, requerimientos, evidencias, campos) y validan contra el TransitionContext proporcionado. Ejemplos de implementaciones: - StandardGateEvaluator: Evaluador genérico que valida campos y evidencias - RoleBasedGateEvaluator: Evaluador que valida permisos por rol - CustomGateEvaluator: Evaluador para lógica de negocio específica
GateEvaluatorInterface::evaluate()
abstract public function evaluate(Milpa\Workflow\Entities\GateDefinition $gateDefinition, Milpa\Workflow\StateMachine\TransitionContext $context): Milpa\Workflow\StateMachine\GateResultEvalúa si un gate específico permite la transición. Lee la configuración del GateDefinition y valida contra el contexto: - Si el gate requiere campos (required_fields), verifica que estén en context->fieldValues - Si el gate requiere evidencias (required_evidence), verifica que estén en context->evidenceIds - Si el gate ya fue pasado (context->gatePassages), puede retornar pass() - Si el gate fue exceptuado (context->metadata['waived_gate']), puede retornar waived()
Parameters
| Name | Type | Description |
|---|---|---|
| $gateDefinition | GateDefinition | Definición del gate desde BD |
| $context | TransitionContext | Contexto con datos del actor, entidad y evaluación |
Returns
Resultado de la evaluación (pass/fail/waived)
GateEvaluatorInterface::getName()
abstract public function getName(): stringRetorna el nombre identificador del evaluador. Útil para logging y debugging. Ejemplo: 'standard', 'role_based', 'budget_approval'