"""Prompts blueprint — CRUD + activate для версионирования промптов.""" from flask import Blueprint, request, jsonify from app.db import prompts as db_prompts prompts_bp = Blueprint("prompts", __name__) @prompts_bp.route("/api/prompts", methods=["GET"]) def prompts_get(): role = request.args.get("role") if not role: return jsonify(ok=False, error="role required"), 400 p = db_prompts.get_active(role) if p: return jsonify(ok=True, **{ "id": p["id"], "role": p["role"], "name": p["name"], "body": p["body"], "is_active": p["is_active"], "notes": p.get("notes"), "created_at": str(p.get("created_at", "")), }) return jsonify(ok=False, error="not found"), 404 @prompts_bp.route("/api/prompts/list", methods=["GET"]) def prompts_list(): role = request.args.get("role") if not role: return jsonify(ok=False, error="role required"), 400 versions = db_prompts.list_by_role(role) return jsonify(ok=True, versions=versions) @prompts_bp.route("/api/prompts/save", methods=["POST"]) def prompts_save(): body = request.get_json() if not body: return jsonify(ok=False, error="body required"), 400 role = body.get("role", "") name = body.get("name", "") prompt_body = body.get("body", "") notes = body.get("notes", "") try: p = db_prompts.insert(role, name, prompt_body, notes) return jsonify(ok=True, id=p["id"]) except Exception as e: return jsonify(ok=False, error=str(e)), 500 @prompts_bp.route("/api/prompts/activate", methods=["POST"]) def prompts_activate(): body = request.get_json() if not body: return jsonify(ok=False, error="body required"), 400 prompt_id = body.get("id") try: db_prompts.activate(prompt_id) return jsonify(ok=True) except Exception as e: return jsonify(ok=False, error=str(e)), 500 @prompts_bp.route("/api/prompts/delete", methods=["POST"]) def prompts_delete(): body = request.get_json() if not body: return jsonify(ok=False, error="body required"), 400 prompt_id = body.get("id") try: db_prompts.delete(prompt_id) return jsonify(ok=True) except Exception as e: return jsonify(ok=False, error=str(e)), 500