{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/Crawler\/CrawlerErrorRepository.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Infrastructure\\Crawler;\n\n\/\/ @responsibility: Lesezugriff auf crawler.errors\n\nuse Domain\\Crawler\\ErrorSummary;\n\nfinal class CrawlerErrorRepository\n{\n public function __construct(private \\PDO $pdo)\n {\n }\n\n \/**\n * @return list<ErrorSummary>\n *\/\n public function listByCrawl(int $crawlId): array\n {\n $stmt = $this->pdo->prepare(\n 'SELECT id, crawl_id, url, error_type, error_msg, occurred_at'\n . ' FROM errors WHERE crawl_id = :crawl_id ORDER BY id',\n );\n $stmt->execute([':crawl_id' => $crawlId]);\n\n return array_map([$this, 'hydrate'], $stmt->fetchAll());\n }\n\n \/**\n * @param array<string, mixed> $row\n *\/\n private function hydrate(array $row): ErrorSummary\n {\n return new ErrorSummary(\n id: (int) $row['id'],\n crawlId: (int) $row['crawl_id'],\n url: (string) $row['url'],\n errorType: (string) $row['error_type'],\n errorMsg: (string) $row['error_msg'],\n occurredAt: (string) $row['occurred_at'],\n );\n }\n}\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/Crawler\/CrawlerErrorRepository.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Infrastructure\\Crawler;\n\n\/\/ @responsibility: Lesezugriff auf crawler.errors\n\nuse Domain\\Crawler\\ErrorSummary;\n\nfinal class CrawlerErrorRepository\n{\n public function __construct(private \\PDO $pdo)\n {\n }\n\n \/**\n * @return list<ErrorSummary>\n *\/\n public function listByCrawl(int $crawlId): array\n {\n $stmt = $this->pdo->prepare(\n 'SELECT id, crawl_id, url, error_type, error_msg, occurred_at'\n . ' FROM errors WHERE crawl_id = :crawl_id ORDER BY id',\n );\n $stmt->execute([':crawl_id' => $crawlId]);\n\n return array_map([$this, 'hydrate'], $stmt->fetchAll());\n }\n\n \/**\n * @param array<string, mixed> $row\n *\/\n private function hydrate(array $row): ErrorSummary\n {\n return new ErrorSummary(\n id: (int) $row['id'],\n crawlId: (int) $row['crawl_id'],\n url: (string) $row['url'],\n errorType: (string) $row['error_type'],\n errorMsg: (string) $row['error_msg'],\n occurredAt: (string) $row['occurred_at'],\n );\n }\n}\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}