TaxonomyRepositoryInterface.php

Code Hygiene Score: 100

Keine Issues gefunden.

Klassen 1

Funktionen 7

Verwendet von 13

Code

<?php

declare(strict_types=1);

namespace Domain\Repository;

// @responsibility: Interface für Taxonomy-Persistenz (CRUD + Hierarchie)

interface TaxonomyRepositoryInterface
{
    /**
     * Holt alle Taxonomie-Begriffe mit Statistiken.
     *
     * @return array<int, array{id: int, name: string, parent_id: ?int, depth: int, path: string, chunk_count: int, children_count: int}>
     */
    public function findAll(): array;

    /**
     * Holt Taxonomie-Statistiken.
     *
     * @return array{total_terms: int, root_terms: int, max_depth: int, tagged_chunks: int}
     */
    public function getStats(): array;

    /**
     * Findet einen Begriff nach ID.
     *
     * @return array{id: int, name: string, parent_id: ?int, depth: int, path: string}|null
     */
    public function find(int $id): ?array;

    /**
     * Erstellt einen neuen Taxonomie-Begriff.
     *
     * @return int ID des neuen Begriffs
     */
    public function create(string $name, ?int $parentId = null): int;

    /**
     * Aktualisiert einen Taxonomie-Begriff.
     */
    public function update(int $id, string $name, ?int $parentId = null): bool;

    /**
     * Löscht einen Taxonomie-Begriff (nur wenn keine Kinder vorhanden).
     *
     * @return bool False wenn Kinder vorhanden, True bei Erfolg
     */
    public function delete(int $id): bool;

    /**
     * Holt Begriffe für Select-Dropdown (minimale Daten).
     *
     * @return array<int, array{id: int, name: string, depth: int, path: string}>
     */
    public function findForSelect(): array;
}
← Übersicht Graph