1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace LaravelUi5\OData\Service\Contracts;
6:
7: /**
8: * Resolves the active ODataService for an incoming request.
9: *
10: * The full path (including all path segments) is passed so implementations
11: * can support multi-tenant or prefix-based routing strategies where multiple
12: * services are mounted at different URI prefixes.
13: *
14: * @throws \RuntimeException if no service matches the given path
15: */
16: interface ODataServiceRegistryInterface
17: {
18: /**
19: * @return ODataServiceInterface[]
20: */
21: public function services(): array;
22:
23: public function resolve(string $fullPath): ODataServiceInterface;
24: }
25: