SeiteExplorerRepositoryInterface.php

Code Hygiene Score: 100

Keine Issues gefunden.

Klassen 1

Funktionen 9

Verwendet von 9

Code

<?php

declare(strict_types=1);

namespace Domain\Repository;

// @responsibility: Interface für Seiten-Explorer-Operationen (Unterseiten mit Stats)

interface SeiteExplorerRepositoryInterface
{
    /**
     * Count all pages (depth > 0).
     */
    public function countSeiten(): int;

    /**
     * Count pages with filters.
     */
    public function countSeitenFiltered(string $search = '', string $parentId = ''): int;

    /**
     * Get pages with filters (no pagination).
     *
     * @return array<array<string, mixed>>
     */
    public function getSeitenFiltered(string $search = '', string $parentId = ''): array;

    /**
     * Get pages with pagination and filters.
     *
     * @return array<array<string, mixed>>
     */
    public function getSeitenPaginated(
        string $search = '',
        string $parentId = '',
        int $limit = 50,
        int $offset = 0
    ): array;

    /**
     * Get page with parent info.
     *
     * @return array<string, mixed>|null
     */
    public function getSeiteWithParent(int $id): ?array;

    /**
     * Get child pages with stats for a parent document.
     *
     * @return array<array<string, mixed>>
     */
    public function getSeitenWithStatsForParent(int $parentId): array;

    /**
     * Get child pages (simple).
     *
     * @return array<array<string, mixed>>
     */
    public function getUnterseiten(int $parentId): array;

    /**
     * Build breadcrumb for a page.
     *
     * @param array<string, mixed> $seite
     * @return array<array{id: int, title: string, path: string, depth: int}>
     */
    public function buildBreadcrumb(array $seite): array;

    /**
     * Get taxonomy aggregation for document tree.
     *
     * @return array<array{taxonomy_category: string, count: int}>
     */
    public function getTaxonomyForDokumentTree(int $dokumentId): array;
}
← Übersicht Graph