{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Critics\/CriticDTO.php",
"old_string": "<?php\n\nnamespace UseCases\\Critics;\n\nfinal class CriticDTO",
"new_string": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Critics;\n\n\/\/ @responsibility: Datenübertragungsobjekt für Critics\n\nfinal class CriticDTO"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Critics\/CriticDTO.php",
"oldString": "<?php\n\nnamespace UseCases\\Critics;\n\nfinal class CriticDTO",
"newString": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Critics;\n\n\/\/ @responsibility: Datenübertragungsobjekt für Critics\n\nfinal class CriticDTO",
"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 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}\n",
"structuredPatch": [
{
"oldStart": 1,
"oldLines": 7,
"newStart": 1,
"newLines": 11,
"lines": [
" <?php",
" ",
"+declare(strict_types=1);",
"+",
" namespace UseCases\\Critics;",
" ",
"+\/\/ @responsibility: Datenübertragungsobjekt für Critics",
"+",
" final class CriticDTO",
" {",
" public function __construct("
]
}
],
"userModified": false,
"replaceAll": false
}
}