from flask import jsonify, request from werkzeug.wrappers import Response import screens from core.flask_app import app @app.route("/game//screens//flow/nodes/add", methods=["POST"]) def flow_node_add(slug: str, screen_id: int) -> Response | tuple[Response, int]: """Ajoute un nœud (Déclencheur / Condition / Action) au graphe de logique de cet écran — appelé en AJAX depuis le panneau "Logique de la scène", pour que poser un nœud ne recharge jamais toute la page.""" payload = request.get_json(force=True) or {} node_type = payload.get("node_type") if node_type not in ("trigger", "condition", "action"): return jsonify({"error": "type de nœud invalide"}), 400 x = float(payload.get("x", 40)) y = float(payload.get("y", 40)) fields = {k: v for k, v in payload.items() if k not in ("node_type", "x", "y")} node_id = screens.add_flow_node(slug, screen_id, node_type, x=x, y=y, **fields) return jsonify(screens.get_flow_node(slug, node_id))