passes method
Validates the value using the given context.
Returns true if valid, otherwise false.
Implementation
@override
FutureOr<bool> passes(ValidationContext context) {
final args = context.parameters;
final data = context.data;
if (args.length < 2) return true;
final otherField = args[0];
final expectedValue = args[1];
// Check if condition is met
if (data.containsKey(otherField) &&
data[otherField].toString() == expectedValue) {
// If condition meets, field must be prohibited (empty/missing)
// Re-use logic from ProhibitedRule
final value = context.value;
if (value == null) return true;
if (value is String && value.trim().isEmpty) return true;
if (value is Iterable && value.isEmpty) return true;
if (value is Map && value.isEmpty) return true;
return false;
}
return true;
}