Files
server/shared/lib/Resource/Identifier/ResourceIdentifiersInterface.php
Sebastian Krupinski 69d6c7fd1a
All checks were successful
Build Test / build (pull_request) Successful in 18s
JS Unit Tests / test (pull_request) Successful in 16s
PHP Unit Tests / test (pull_request) Successful in 41s
refactor: entity move and delete
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-05-07 23:58:36 -04:00

56 lines
1.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: Sebastian Krupinski <krupinski01@gmail.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace KTXF\Resource\Identifier;
use KTXF\Json\JsonSerializable;
/**
* A typed collection of resource identifiers with search and filter capabilities
*/
interface ResourceIdentifiersInterface extends JsonSerializable, \Countable, \IteratorAggregate {
/** Add an identifier to the collection */
public function add(ResourceIdentifierInterface $identifier): void;
/** Get all identifiers */
public function all(): array;
/** Filter identifiers by depth level (14) */
public function byDepth(int $depth): static;
/** Filter identifiers by provider */
public function byProvider(string $provider): static;
/** Filter identifiers by service (requires depth >= 2) */
public function byService(string $service): static;
/** Filter identifiers by collection (requires depth >= 3) */
public function byCollection(string $collection): static;
/** Filter identifiers by entity (requires depth == 4) */
public function byEntity(string $entity): static;
/** Get unique provider names */
public function providers(): array;
/** Get unique service names */
public function services(): array;
/** Get unique collection names */
public function collections(): array;
/** Get unique entity names */
public function entities(): array;
/** Serialize as an array of canonical identifier strings */
public function jsonSerialize(): array;
}