{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/Persistence\/ChunkRepository.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/ChunkRepositoryInterface.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Interface für Chunk-Persistenz (Text-Chunks aus Dokumenten)\n\ninterface ChunkRepositoryInterface\n{\n \/**\n * Holt Chunk-Statistiken.\n *\n * @return array{total: int, tokens: int, embedded: int}\n *\/\n public function getStats(): array;\n\n \/**\n * Holt die neuesten Chunks.\n *\n * @return array<int, array{id: int, content: string, token_count: int, created_at: string, qdrant_id: ?string, filename: string}>\n *\/\n public function findRecent(int $limit = 5): array;\n\n \/**\n * Holt alle Chunks für ein Dokument.\n *\n * @return array<int, array{id: int, chunk_index: int, content: string, token_count: int, heading_path: ?string, metadata: ?string, qdrant_id: ?string, created_at: string}>\n *\/\n public function findByDocument(int $documentId): array;\n\n \/**\n * Holt gefilterte Chunks mit Pagination.\n *\n * @return array<int, array>\n *\/\n public function findFiltered(string $search = '', string $embedded = '', int $limit = 50, int $offset = 0): array;\n\n \/**\n * Zählt Chunks nach Filter-Kriterien.\n *\/\n public function count(string $search = '', string $embedded = ''): int;\n\n \/**\n * Findet einen Chunk nach ID mit Document-Info.\n *\n * @return array|null\n *\/\n public function find(int $id): ?array;\n\n \/**\n * Findet einen Chunk nach Document-ID und Index.\n *\n * @return array{id: int, chunk_index: int}|null\n *\/\n public function findByDocumentAndIndex(int $documentId, int $chunkIndex): ?array;\n\n \/**\n * Holt Entitäten für einen Chunk (Graceful Degradation: leeres Array wenn keine).\n *\n * @return array<int, array{id: int, name: string, type: string, relevance_score: float}>\n *\/\n public function getChunkEntities(int $chunkId): array;\n\n \/**\n * Holt Taxonomie-Mappings für einen Chunk (Graceful Degradation: leeres Array wenn keine).\n *\n * @return array<int, array{term_id: int, term_name: string, term_path: string, confidence: float}>\n *\/\n public function getChunkTaxonomy(int $chunkId): array;\n\n \/**\n * Findet Chunks die eine bestimmte Entität enthalten.\n *\n * @return array<int, array{chunk_id: int, content: string, relevance_score: float}>\n *\/\n public function findChunksByEntity(int $entityId, int $limit = 10): array;\n}\n",
"numLines": 79,
"startLine": 1,
"totalLines": 79
}
}
}