{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Critics\/CriticDTO.php",
"old_string": " public function fokusAsText(): string\n {\n return implode(\"\\n\", $this->fokus);\n }\n}",
"new_string": " public function fokusAsText(): string\n {\n return implode(\"\\n\", $this->fokus);\n }\n\n public function toArray(): array\n {\n return [\n 'id' => $this->id,\n 'name' => $this->name,\n 'fokus' => json_encode($this->fokus, JSON_UNESCAPED_UNICODE),\n 'prompt_id' => $this->promptId,\n 'sort_order' => $this->sortOrder,\n 'is_active' => $this->isActive,\n 'prompt_name' => $this->promptName,\n ];\n }\n}"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Critics\/CriticDTO.php",
"oldString": " public function fokusAsText(): string\n {\n return implode(\"\\n\", $this->fokus);\n }\n}",
"newString": " public function fokusAsText(): string\n {\n return implode(\"\\n\", $this->fokus);\n }\n\n public function toArray(): array\n {\n return [\n 'id' => $this->id,\n 'name' => $this->name,\n 'fokus' => json_encode($this->fokus, JSON_UNESCAPED_UNICODE),\n 'prompt_id' => $this->promptId,\n 'sort_order' => $this->sortOrder,\n 'is_active' => $this->isActive,\n 'prompt_name' => $this->promptName,\n ];\n }\n}",
"originalFile": "<?php\n\nnamespace UseCases\\Critics;\n\nfinal class CriticDTO\n{\n public function __construct(\n public readonly ?int $id,\n public readonly string $name,\n public readonly array $fokus,\n public readonly ?int $promptId,\n public readonly int $sortOrder,\n public readonly bool $isActive,\n public readonly ?string $promptName = null,\n ) {\n }\n\n public static function fromArray(array $data): self\n {\n $fokus = $data['fokus'] ?? '[]';\n if (is_string($fokus)) {\n $fokus = json_decode($fokus, true) ?? [];\n }\n\n return new self(\n id: isset($data['id']) ? (int) $data['id'] : null,\n name: $data['name'] ?? '',\n fokus: is_array($fokus) ? $fokus : [],\n promptId: isset($data['prompt_id']) ? (int) $data['prompt_id'] : null,\n sortOrder: (int) ($data['sort_order'] ?? 0),\n isActive: (bool) ($data['is_active'] ?? false),\n promptName: $data['prompt_name'] ?? null,\n );\n }\n\n public function fokusAsText(): string\n {\n return implode(\"\\n\", $this->fokus);\n }\n}\n",
"structuredPatch": [
{
"oldStart": 37,
"oldLines": 4,
"newStart": 37,
"newLines": 17,
"lines": [
" {",
" return implode(\"\\n\", $this->fokus);",
" }",
"+",
"+ public function toArray(): array",
"+ {",
"+ return [",
"+ 'id' => $this->id,",
"+ 'name' => $this->name,",
"+ 'fokus' => json_encode($this->fokus, JSON_UNESCAPED_UNICODE),",
"+ 'prompt_id' => $this->promptId,",
"+ 'sort_order' => $this->sortOrder,",
"+ 'is_active' => $this->isActive,",
"+ 'prompt_name' => $this->promptName,",
"+ ];",
"+ }",
" }"
]
}
],
"userModified": false,
"replaceAll": false
}
}