diff --git a/backend/routers/prompts.py b/backend/routers/prompts.py index 94d4c27..8112ece 100644 --- a/backend/routers/prompts.py +++ b/backend/routers/prompts.py @@ -364,6 +364,12 @@ def duplicate_prompt(prompt_id: str, session: dict=Depends(require_admin)): new_display_name = f"{original.get('display_name') or original['name']} (Kopie)" + # Prepare JSONB fields (convert dict/list to JSON string if needed) + stages_json = json.dumps(original['stages']) if original.get('stages') else None + output_schema_json = json.dumps(original['output_schema']) if original.get('output_schema') else None + question_aug_json = json.dumps(original['question_augmentations']) if original.get('question_augmentations') else None + graph_data_json = json.dumps(original['graph_data']) if original.get('graph_data') else None + cur.execute( """INSERT INTO ai_prompts ( id, name, slug, display_name, description, template, category, @@ -379,9 +385,9 @@ def duplicate_prompt(prompt_id: str, session: dict=Depends(require_admin)): (new_id, new_name, new_slug, new_display_name, original.get('description'), original.get('template'), original.get('category', 'ganzheitlich'), - original.get('type', 'pipeline'), original.get('stages'), - original.get('output_format', 'text'), original.get('output_schema'), - original.get('question_augmentations'), original.get('graph_data'), + original.get('type', 'pipeline'), stages_json, + original.get('output_format', 'text'), output_schema_json, + question_aug_json, graph_data_json, original.get('active', True), original.get('sort_order', 0)) )