{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/DependencyGraphRepositoryInterface.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Contract für Dependency-Graph-Persistenz (code_dependencies Tabelle)\n\ninterface DependencyGraphRepositoryInterface\n{\n \/**\n * Find all files that depend on a given FQCN (reverse lookup for impact analysis).\n *\n * @param string $fqcn The fully qualified class name to search for\n * @param string|null $dependencyType Filter by type (use, extends, implements, trait, constructor)\n * @return array<array{id: int, file_name: string, file_path: string, namespace: string|null, dependency_type: string}>\n *\/\n public function findDependents(string $fqcn, ?string $dependencyType = null): array;\n\n \/**\n * Get all dependencies for a given analysis ID.\n *\n * @return array<array{dependency_type: string, target_fqcn: string}>\n *\/\n public function getDependencies(int $analysisId): array;\n\n \/**\n * Get dependency statistics.\n *\n * @return array{total_dependencies: int, by_type: array<string, int>, most_used: array<array{fqcn: string, count: int}>}\n *\/\n public function getDependencyStatistics(): array;\n\n \/**\n * Get global graph data for entire project.\n *\n * @return array{nodes: array<array<string, mixed>>, links: array<array<string, mixed>>, stats: array<string, int>}\n *\/\n public function getGlobalGraphData(): array;\n}\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/DependencyGraphRepositoryInterface.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Contract für Dependency-Graph-Persistenz (code_dependencies Tabelle)\n\ninterface DependencyGraphRepositoryInterface\n{\n \/**\n * Find all files that depend on a given FQCN (reverse lookup for impact analysis).\n *\n * @param string $fqcn The fully qualified class name to search for\n * @param string|null $dependencyType Filter by type (use, extends, implements, trait, constructor)\n * @return array<array{id: int, file_name: string, file_path: string, namespace: string|null, dependency_type: string}>\n *\/\n public function findDependents(string $fqcn, ?string $dependencyType = null): array;\n\n \/**\n * Get all dependencies for a given analysis ID.\n *\n * @return array<array{dependency_type: string, target_fqcn: string}>\n *\/\n public function getDependencies(int $analysisId): array;\n\n \/**\n * Get dependency statistics.\n *\n * @return array{total_dependencies: int, by_type: array<string, int>, most_used: array<array{fqcn: string, count: int}>}\n *\/\n public function getDependencyStatistics(): array;\n\n \/**\n * Get global graph data for entire project.\n *\n * @return array{nodes: array<array<string, mixed>>, links: array<array<string, mixed>>, stats: array<string, int>}\n *\/\n public function getGlobalGraphData(): array;\n}\n",
"structuredPatch": [],
"originalFile": null
}
}