{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/Persistence\/ContentOrderRepository.php",
"content": " 'author_profile_id' => null,\n 'contract_id' => null,\n 'structure_id' => null,\n ];\n }\n\n return [\n 'model' => $row['model'] ?? 'claude-sonnet-4-20250514',\n 'collections' => $this->decodeJsonArray($row['collections'] ?? null) ?: ['documents'],\n 'context_limit' => (int) ($row['context_limit'] ?? 5),\n 'author_profile_id' => $row['author_profile_id'] !== null ? (int) $row['author_profile_id'] : null,\n 'contract_id' => $row['contract_id'] !== null ? (int) $row['contract_id'] : null,\n 'structure_id' => $row['structure_id'] !== null ? (int) $row['structure_id'] : null,\n ];\n }\n\n public function createOrder(array $data): int\n {\n $stmt = $this->pdo->prepare(\"\n INSERT INTO content_orders\n (title, briefing, author_profile_id, contract_id, structure_id, model, collections, context_limit, status)\n VALUES (:title, :briefing, :profile_id, :contract_id, :structure_id, :model, :collections, :context_limit, 'draft')\n \");\n\n $stmt->execute([\n 'title' => $data['title'],\n 'briefing' => $data['briefing'],\n 'profile_id' => ($data['author_profile_id'] !== '' && $data['author_profile_id'] !== null) ? $data['author_profile_id'] : null,\n 'contract_id' => ($data['contract_id'] !== '' && $data['contract_id'] !== null) ? $data['contract_id'] : null,\n 'structure_id' => ($data['structure_id'] !== '' && $data['structure_id'] !== null) ? $data['structure_id'] : null,\n 'model' => $data['model'] ?? 'claude-sonnet-4-20250514',\n 'collections' => $data['collections'] ?? '[\"documents\"]',\n 'context_limit' => $data['context_limit'] ?? 5,\n ]);\n\n return (int) $this->pdo->lastInsertId();\n }\n\n public function updateOrderStatus(int $id, string $status): void\n {\n $stmt = $this->pdo->prepare('\n UPDATE content_orders SET status = :status, updated_at = NOW() WHERE id = :id\n ');\n $stmt->execute(['id' => $id, 'status' => $status]);\n }\n\n public function updateGenerationStatus(int $id, string $status, ?string $error = null): void\n {\n $sql = 'UPDATE content_orders SET generation_status = :status, updated_at = NOW()';\n $params = ['id' => $id, 'status' => $status];\n\n if ($status === 'generating') {\n $sql .= ', generation_started_at = NOW()';\n }\n if ($error !== null) {\n $sql .= ', generation_error = :error';\n $params['error'] = $error;\n }\n if ($status === 'completed' || $status === 'idle') {\n $sql .= ', generation_error = NULL';\n }\n\n $sql .= ' WHERE id = :id';\n $stmt = $this->pdo->prepare($sql);\n $stmt->execute($params);\n }\n\n public function updateCritiqueStatus(int $id, string $status, ?string $error = null): void\n {\n $sql = 'UPDATE content_orders SET critique_status = :status, updated_at = NOW()';\n $params = ['id' => $id, 'status' => $status];\n\n if ($status === 'critiquing') {\n $sql .= ', critique_started_at = NOW(), critique_log = NULL';\n }\n if ($error !== null) {\n $sql .= ', critique_error = :error';\n $params['error'] = $error;\n }\n if ($status === 'completed' || $status === 'idle') {\n $sql .= ', critique_error = NULL';\n }\n\n $sql .= ' WHERE id = :id';\n $stmt = $this->pdo->prepare($sql);\n $stmt->execute($params);\n }\n\n public function updateOrder(int $id, array $data): bool\n {\n $stmt = $this->pdo->prepare('\n UPDATE content_orders SET\n title = :title,\n briefing = :briefing,\n author_profile_id = :profile_id,\n contract_id = :contract_id,\n structure_id = :structure_id,\n updated_at = NOW()\n WHERE id = :id\n ');",
"numLines": 100,
"startLine": 100,
"totalLines": 224
}
}
}