1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace LaravelUi5\OData\Protocol\Planning\Expression;
6:
7: use LaravelUi5\OData\Edm\Contracts\Property\NavigationPropertyInterface;
8: use LaravelUi5\OData\Edm\Contracts\Property\PropertyInterface;
9:
10: final readonly class PropertyPathExpression extends FilterExpression
11: {
12: /**
13: * Ordered list of resolved model objects forming the path.
14: *
15: * Single structural property: [$property].
16: * Navigation path: [$navProperty, $property].
17: *
18: * @param list<PropertyInterface|NavigationPropertyInterface> $segments
19: */
20: public function __construct(public readonly array $segments) {}
21:
22: public function kind(): FilterExpressionKind
23: {
24: return FilterExpressionKind::PropertyPath;
25: }
26: }
27: