'Y-m-d'])] public ?\DateTimeImmutable $dateFrom = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $timeFrom = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $dayTime = null; #[Groups(['api:single', 'api:list', 'snapshot'])] #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])] public ?\DateTimeImmutable $dateTo = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $subType = null; #[Groups(['booking'])] public ?int $totalCount = null; #[Groups(['api:single', 'snapshot'])] public array $mapping = []; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?float $price = null; #[Groups(['api:single', 'snapshot'])] public ?float $totalPrice = null; #[Groups(['api:single', 'snapshot'])] public array $individualPrice = []; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?int $available = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $source = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $direction = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?int $ageFrom = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?int $ageTo = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?int $birthYearFrom = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?int $birthYearTo = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $ageConstraintType = null; #[Groups(['api:single'])] public ?array $ageConstraintMetadata = null; #[Groups(['api:single'])] public ?string $rawAgeConstraintData = null; #[Groups(['api:single', 'api:list', 'snapshot'])] public ?string $description = null; /** * Indicates whether this service should be included in insurance eligibility price calculation. * * Maps to XML attribute 'versicherungsberechnung' (J=true, N=false). * When false, this service's price is excluded when determining which insurance * tier is appropriate for a participant. */ #[Groups(['api:single', 'api:list', 'snapshot'])] public bool $includeInInsuranceCalculation = true; }