{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/infrastructure\/persistence\/mappers\/crawl_mapper.py",
"content": "from __future__ import annotations\n\nimport json\nfrom typing import Any\n\nfrom src.domain.entities.crawl import Crawl\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\n\n\ndef crawl_to_row(crawl: Crawl) -> dict[str, Any]:\n return {\n \"base_url\": crawl.base_url,\n \"mode\": crawl.mode.value,\n \"started_at\": crawl.started_at,\n \"finished_at\": crawl.finished_at,\n \"status\": crawl.status.value,\n \"config_json\": json.dumps(dict(crawl.config)),\n \"total_urls\": crawl.total_urls,\n \"total_errors\": crawl.total_errors,\n \"trigger_source\": crawl.trigger_source.value,\n }\n\n\ndef row_to_crawl(row: dict[str, Any]) -> Crawl:\n return Crawl(\n id=row[\"id\"],\n base_url=row[\"base_url\"],\n mode=CrawlMode(row[\"mode\"]),\n started_at=row[\"started_at\"],\n finished_at=row[\"finished_at\"],\n status=CrawlStatus(row[\"status\"]),\n trigger_source=TriggerSource(row[\"trigger_source\"]),\n config=json.loads(row[\"config_json\"]) if row[\"config_json\"] else {},\n total_urls=row[\"total_urls\"],\n total_errors=row[\"total_errors\"],\n )\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/infrastructure\/persistence\/mappers\/crawl_mapper.py",
"content": "from __future__ import annotations\n\nimport json\nfrom typing import Any\n\nfrom src.domain.entities.crawl import Crawl\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\n\n\ndef crawl_to_row(crawl: Crawl) -> dict[str, Any]:\n return {\n \"base_url\": crawl.base_url,\n \"mode\": crawl.mode.value,\n \"started_at\": crawl.started_at,\n \"finished_at\": crawl.finished_at,\n \"status\": crawl.status.value,\n \"config_json\": json.dumps(dict(crawl.config)),\n \"total_urls\": crawl.total_urls,\n \"total_errors\": crawl.total_errors,\n \"trigger_source\": crawl.trigger_source.value,\n }\n\n\ndef row_to_crawl(row: dict[str, Any]) -> Crawl:\n return Crawl(\n id=row[\"id\"],\n base_url=row[\"base_url\"],\n mode=CrawlMode(row[\"mode\"]),\n started_at=row[\"started_at\"],\n finished_at=row[\"finished_at\"],\n status=CrawlStatus(row[\"status\"]),\n trigger_source=TriggerSource(row[\"trigger_source\"]),\n config=json.loads(row[\"config_json\"]) if row[\"config_json\"] else {},\n total_urls=row[\"total_urls\"],\n total_errors=row[\"total_errors\"],\n )\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}