This commit is contained in:
team 1
2026-05-07 15:29:05 +02:00
parent d3ae51c551
commit 987b15d4ff
4 changed files with 204 additions and 44 deletions

View File

@@ -1238,6 +1238,44 @@ final readonly class RetriexEffectiveConfigProvider
}
}
}
$reviewPathGroups = $definition['review_path_groups'] ?? null;
if (array_key_exists('review_path_groups', $definition)) {
if (!is_array($reviewPathGroups) || $reviewPathGroups === []) {
$errors[] = sprintf('genre.adaptation_surface.%s.review_path_groups must be a non-empty map when declared.', $group);
continue;
}
foreach ($reviewPathGroups as $reviewGroup => $reviewDefinition) {
if (!is_string($reviewGroup) || trim($reviewGroup) === '') {
$errors[] = sprintf('genre.adaptation_surface.%s.review_path_groups keys must be non-empty strings.', $group);
continue;
}
if (!is_array($reviewDefinition)) {
$errors[] = sprintf('genre.adaptation_surface.%s.review_path_groups.%s must be a map.', $group, $reviewGroup);
continue;
}
$paths = $reviewDefinition['paths'] ?? null;
if (!is_array($paths) || $paths === []) {
$errors[] = sprintf('genre.adaptation_surface.%s.review_path_groups.%s.paths must be a non-empty list.', $group, $reviewGroup);
continue;
}
foreach ($paths as $path) {
if (!is_string($path) || trim($path) === '') {
$errors[] = sprintf('genre.adaptation_surface.%s.review_path_groups.%s.paths must contain non-empty strings.', $group, $reviewGroup);
continue;
}
$path = trim($path);
if (!isset($flattened[$path])) {
$warnings[] = sprintf('genre.adaptation_surface.%s.review_path_groups.%s references unknown review path: %s.', $group, $reviewGroup, $path);
}
}
}
}
}
foreach ($this->collectGenreConfigurationValueSourcePaths($configurationValues) as $valuePath => $sourcePaths) {