import db from .ensure_flow_schema import ensure_flow_schema from .constants import FLOW_NODE_FIELDS def add_flow_node(slug, screen_id, node_type, x=40, y=40, **fields): ensure_flow_schema(slug) cols = ["screen_id", "node_type", "x", "y"] vals = [screen_id, node_type, x, y] for k, v in fields.items(): if k in FLOW_NODE_FIELDS and v not in (None, ""): cols.append(k) vals.append(v) placeholders = ", ".join("?" for _ in cols) conn = db.connect(slug) conn.execute(f"INSERT INTO _flow_nodes ({', '.join(cols)}) VALUES ({placeholders})", vals) node_id = conn.execute("SELECT last_insert_rowid() AS id").fetchone()["id"] conn.commit() conn.close() return node_id