{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/CodeAnalysis\/GetCodeAnalysisUseCase.php",
"old_string": "namespace UseCases\\CodeAnalysis;\n\n\/\/ @responsibility: Orchestriert Code-Analyse-Abfragen\n\nuse Domain\\Repository\\CodeAnalysisRepositoryInterface;\nuse Domain\\Service\\CodeScannerInterface;\n\nfinal class GetCodeAnalysisUseCase\n{\n public function __construct(\n private CodeAnalysisRepositoryInterface $repository,\n private CodeScannerInterface $scanner\n ) {\n }",
"new_string": "namespace UseCases\\CodeAnalysis;\n\n\/\/ @responsibility: Orchestriert Code-Analyse-Abfragen\n\nuse Domain\\Repository\\DependencyGraphRepositoryInterface;\nuse Domain\\Repository\\FileAnalysisRepositoryInterface;\nuse Domain\\Service\\CodeScannerInterface;\n\nfinal class GetCodeAnalysisUseCase\n{\n public function __construct(\n private FileAnalysisRepositoryInterface $fileRepository,\n private DependencyGraphRepositoryInterface $dependencyRepository,\n private CodeScannerInterface $scanner\n ) {\n }"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/CodeAnalysis\/GetCodeAnalysisUseCase.php",
"oldString": "namespace UseCases\\CodeAnalysis;\n\n\/\/ @responsibility: Orchestriert Code-Analyse-Abfragen\n\nuse Domain\\Repository\\CodeAnalysisRepositoryInterface;\nuse Domain\\Service\\CodeScannerInterface;\n\nfinal class GetCodeAnalysisUseCase\n{\n public function __construct(\n private CodeAnalysisRepositoryInterface $repository,\n private CodeScannerInterface $scanner\n ) {\n }",
"newString": "namespace UseCases\\CodeAnalysis;\n\n\/\/ @responsibility: Orchestriert Code-Analyse-Abfragen\n\nuse Domain\\Repository\\DependencyGraphRepositoryInterface;\nuse Domain\\Repository\\FileAnalysisRepositoryInterface;\nuse Domain\\Service\\CodeScannerInterface;\n\nfinal class GetCodeAnalysisUseCase\n{\n public function __construct(\n private FileAnalysisRepositoryInterface $fileRepository,\n private DependencyGraphRepositoryInterface $dependencyRepository,\n private CodeScannerInterface $scanner\n ) {\n }",
"originalFile": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\CodeAnalysis;\n\n\/\/ @responsibility: Orchestriert Code-Analyse-Abfragen\n\nuse Domain\\Repository\\CodeAnalysisRepositoryInterface;\nuse Domain\\Service\\CodeScannerInterface;\n\nfinal class GetCodeAnalysisUseCase\n{\n public function __construct(\n private CodeAnalysisRepositoryInterface $repository,\n private CodeScannerInterface $scanner\n ) {\n }\n\n \/**\n * @param array<string, mixed> $filters\n * @return array<array<string, mixed>>\n *\/\n public function execute(array $filters = [], int $limit = 100, int $offset = 0): array\n {\n return $this->repository->findAll($filters, $limit, $offset);\n }\n\n \/**\n * @return array<string, mixed>|null\n *\/\n public function findById(int $id): ?array\n {\n return $this->repository->findById($id);\n }\n\n \/**\n * @return array<string, mixed>\n *\/\n public function getStatistics(): array\n {\n return $this->repository->getStatistics();\n }\n\n \/**\n * @return array{directories: array<string>, namespaces: array<string>}\n *\/\n public function getFilterOptions(): array\n {\n return [\n 'directories' => $this->repository->getDistinctDirectories(),\n 'namespaces' => $this->repository->getDistinctNamespaces(),\n ];\n }\n\n \/**\n * @return array{scan_id: string, files_scanned: int, files_with_errors: int, total_classes: int, total_functions: int, duration_ms: int}\n *\/\n public function runScan(string $triggeredBy = 'web'): array\n {\n return $this->scanner->scan(null, $triggeredBy);\n }\n\n public function getLatestScanId(): ?string\n {\n return $this->repository->getLatestScanId();\n }\n\n \/**\n * Find files that depend on a given FQCN.\n *\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): array\n {\n return $this->repository->findDependents($fqcn);\n }\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 return $this->repository->getGlobalGraphData();\n }\n}\n",
"structuredPatch": [
{
"oldStart": 6,
"oldLines": 13,
"newStart": 6,
"newLines": 15,
"lines": [
" ",
" \/\/ @responsibility: Orchestriert Code-Analyse-Abfragen",
" ",
"-use Domain\\Repository\\CodeAnalysisRepositoryInterface;",
"+use Domain\\Repository\\DependencyGraphRepositoryInterface;",
"+use Domain\\Repository\\FileAnalysisRepositoryInterface;",
" use Domain\\Service\\CodeScannerInterface;",
" ",
" final class GetCodeAnalysisUseCase",
" {",
" public function __construct(",
"- private CodeAnalysisRepositoryInterface $repository,",
"+ private FileAnalysisRepositoryInterface $fileRepository,",
"+ private DependencyGraphRepositoryInterface $dependencyRepository,",
" private CodeScannerInterface $scanner",
" ) {",
" }"
]
}
],
"userModified": false,
"replaceAll": false
}
}