Backup #1526

ID1526
Dateipfad/var/www/dev.campus.systemische-tools.de/src/Domain/Repository/OntologyRepositoryInterface.php
Version1
Typ modified
Größe1.8 KB
Hashe09d1a152fa47452c9108d019a739ba80fb7109562f6c54dea97bd7e2ccdad0b
Datum2025-12-26 07:01:17
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

declare(strict_types=1);

namespace Domain\Repository;

// @responsibility: Interface für Ontology-Persistenz (CRUD + Klassenhierarchie)

interface OntologyRepositoryInterface
{
    /**
     * Holt alle Ontologie-Klassen mit Statistiken.
     *
     * @return array<int, array{id: int, name: string, parent_class_id: ?int, description: ?string, properties: ?string, entity_count: int, subclass_count: int}>
     */
    public function findAll(): array;

    /**
     * Holt Ontologie-Statistiken.
     *
     * @return array{total_classes: int, root_classes: int, classified_entities: int}
     */
    public function getStats(): array;

    /**
     * Findet eine Klasse nach ID.
     *
     * @return array{id: int, name: string, parent_class_id: ?int, description: ?string, properties: ?string}|null
     */
    public function find(int $id): ?array;

    /**
     * Erstellt eine neue Ontologie-Klasse.
     *
     * @param array<string, mixed> $properties JSON-Properties
     * @return int ID der neuen Klasse
     */
    public function create(string $name, ?int $parentId = null, ?string $description = null, array $properties = []): int;

    /**
     * Aktualisiert eine Ontologie-Klasse.
     *
     * @param array<string, mixed> $properties JSON-Properties
     */
    public function update(int $id, string $name, ?int $parentId = null, ?string $description = null, array $properties = []): bool;

    /**
     * Löscht eine Ontologie-Klasse (nur wenn keine Subklassen vorhanden).
     *
     * @return bool False wenn Subklassen vorhanden, True bei Erfolg
     */
    public function delete(int $id): bool;

    /**
     * Holt Klassen für Select-Dropdown (minimale Daten).
     *
     * @return array<int, array{id: int, name: string}>
     */
    public function findForSelect(): array;
}

Vollständig herunterladen

Aktionen

Herunterladen

← Zurück zur Übersicht