wip: age based filtering of options

This commit is contained in:
Björn Fromme
2025-08-27 15:02:45 +02:00
parent 47703dc205
commit 369d660e24
17 changed files with 845 additions and 23 deletions
@@ -42,4 +42,4 @@ interface AgeConstraintParserInterface
* @return string The constraint type identifier (e.g., 'birth_year', 'grade_level')
*/
public function getConstraintType(): string;
}
}
@@ -112,4 +112,4 @@ class AgeConstraintParserRegistry
return min($current, $new); // Most restrictive maximum
}
}
}
@@ -24,7 +24,7 @@ class BirthYearConstraintParser implements AgeConstraintParserInterface
public function parse(string $constraintData): AgeConstraintResult
{
if (false === $this->canParse($constraintData)) {
throw new \InvalidArgumentException('Cannot parse constraint data: ' . $constraintData);
throw new \InvalidArgumentException('Cannot parse constraint data: '.$constraintData);
}
$yearData = substr($constraintData, strlen(self::BIRTH_YEAR_PREFIX));
@@ -64,4 +64,4 @@ class BirthYearConstraintParser implements AgeConstraintParserInterface
{
return 'birth_year';
}
}
}
+1
View File
@@ -28,6 +28,7 @@ class TravelParser extends AbstractParser
{
$this->ageConstraintRegistry = new AgeConstraintParserRegistry();
}
/**
* Parse XML node into a Travel object.
*