EntityTaxonomyRepositoryInterface.php

Code Hygiene Score: 100

Keine Issues gefunden.

Dependencies 2

Klassen 1

Funktionen 9

Verwendet von 8

Versionen 2

Code

<?php

declare(strict_types=1);

namespace Domain\Repository;

// @responsibility: Interface für Entity-Taxonomie-Mapping Persistenz

use Domain\Constants;
use Domain\Entity\EntityTaxonomyMapping;

interface EntityTaxonomyRepositoryInterface
{
    /**
     * Findet alle Taxonomie-Mappings für eine Entity.
     *
     * @return array<EntityTaxonomyMapping>
     */
    public function findByEntityId(int $entityId): array;

    /**
     * Findet alle Entities, die einem Taxonomie-Begriff zugeordnet sind.
     *
     * @return array<array{entity_id: int, relevance: float, validated: bool}>
     */
    public function findByTaxonomyTermId(int $termId): array;

    /**
     * Speichert ein Entity-Taxonomie-Mapping.
     */
    public function save(EntityTaxonomyMapping $mapping): int;

    /**
     * Löscht ein Mapping nach ID.
     */
    public function delete(int $id): bool;

    /**
     * Löscht alle Mappings für eine Entity.
     */
    public function deleteByEntityId(int $entityId): int;

    /**
     * Findet unvalidierte Mappings zur manuellen Prüfung.
     *
     * @return array<EntityTaxonomyMapping>
     */
    public function getUnvalidatedMappings(int $limit = Constants::DEFAULT_LIMIT): array;

    /**
     * Markiert ein Mapping als validiert.
     */
    public function markAsValidated(int $id): bool;

    /**
     * Prüft ob ein Mapping existiert.
     */
    public function exists(int $entityId, int $taxonomyTermId): bool;

    /**
     * Holt Statistiken über Validierungsstatus.
     *
     * @return array{total: int, validated: int, pending: int}
     */
    public function getValidationStats(): array;
}
← Übersicht Graph