DokumentationRepositoryInterface.php

Code Hygiene Score: 88

Keine Issues gefunden.

Klassen 1

Funktionen 16

Verwendet von 7

Versionen 3

Code

<?php

declare(strict_types=1);

namespace Domain\Repository;

// @responsibility: Vertrag für Dokumentations-Persistenz

interface DokumentationRepositoryInterface
{
    /**
     * @return array<string, mixed>|null
     */
    public function findById(int $id): ?array;

    /**
     * @return array<string, mixed>|null
     */
    public function findByPath(string $path): ?array;

    /**
     * @return array<string, mixed>|null
     */
    public function findBySlug(string $slug, ?int $parentId = null): ?array;

    /**
     * @return array<string, mixed>|null
     */
    public function findDocBySlug(string $slug): ?array;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function findChildren(int $parentId): array;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function findRootDocuments(): array;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function getHierarchy(): array;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function getBreadcrumb(int $docId): array;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function getSiblings(int $docId): array;

    /**
     * @return array{total: int, by_depth: array<int, array{depth: int, count: int}>, by_status: array<int, array{status: string, count: int}>}
     */
    public function getStatistics(): array;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function findAll(
        ?string $status = null,
        ?int $parentId = null,
        ?string $search = null,
        int $limit = 50,
        int $offset = 0
    ): array;

    public function count(
        ?string $status = null,
        ?int $parentId = null,
        ?string $search = null
    ): int;

    /**
     * @param array<string, mixed> $data
     */
    public function create(array $data): int;

    /**
     * @param array<string, mixed> $data
     */
    public function update(int $id, array $data): void;

    public function delete(int $id): void;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function getTree(): array;
}
← Übersicht Graph