validate static method
Implementation
static void validate(String operation, Map<String, dynamic> payload) {
final rule = validationRules[operation];
if (rule == null) {
throw ConfigError('Unknown Firebase Analytics operation: $operation');
}
// Check required parameters
if (rule['required'] != null) {
List<String> missing = [];
for (String param in rule['required']) {
if (payload[param] == null) missing.add(param);
}
if (missing.isNotEmpty) {
throw ConfigError('$operation requires: ${missing.join(', ')}');
}
}
// Check "any of" requirements (for operations like setConsent)
if (rule['anyOf'] != null) {
bool hasAny = false;
for (String param in rule['anyOf']) {
if (payload[param] != null) {
hasAny = true;
break;
}
}
if (!hasAny) {
throw ConfigError(rule['message'] ?? '$operation requires at least one parameter from: ${rule['anyOf'].join(', ')}');
}
}
}