{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Task\/GetTasksUseCase.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Task\/GetTasksUseCase.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Task;\n\n\/\/ @responsibility: Liest Tasks mit Filtern, Details und Statistiken\n\nuse Domain\\Entity\\Task;\nuse Domain\\Repository\\TaskRepositoryInterface;\nuse Infrastructure\\Persistence\\TaskAssignmentRepository;\nuse Infrastructure\\Persistence\\TaskResultRepository;\n\nclass GetTasksUseCase\n{\n public function __construct(\n private TaskRepositoryInterface $taskRepository,\n private TaskAssignmentRepository $assignmentRepository,\n private TaskResultRepository $resultRepository\n ) {\n }\n\n public function execute(array $filters = [], int $limit = 50, int $offset = 0): array\n {\n return $this->taskRepository->findAll($filters, $limit, $offset);\n }\n\n public function findById(int $id): ?Task\n {\n return $this->taskRepository->find($id);\n }\n\n public function findByUuid(string $uuid): ?Task\n {\n return $this->taskRepository->findByUuid($uuid);\n }\n\n public function getTaskWithDetails(int $id): ?array\n {\n $task = $this->taskRepository->find($id);\n\n if ($task === null) {\n return null;\n }\n\n $assignments = $this->assignmentRepository->findByTaskId($id);\n $results = $this->resultRepository->findByTaskId($id);\n $subtasks = $this->taskRepository->findSubtasks($id);\n\n return [\n 'task' => $task->toArray(),\n 'assignments' => array_map(fn ($a) => $a->toArray(), $assignments),\n 'results' => array_map(fn ($r) => $r->toArray(), $results),\n 'subtasks' => array_map(fn ($t) => $t->toArray(), $subtasks),\n ];\n }\n\n public function getStatistics(): array\n {\n return $this->taskRepository->getStatistics();\n }\n\n public function count(array $filters = []): int\n {\n return $this->taskRepository->count($filters);\n }\n}\n",
"numLines": 68,
"startLine": 1,
"totalLines": 68
}
}
}