from ..connection import connect def ensure_quests_schema(slug): """Migration légère (même principe que ensure_custom_events_schema.py) : crée _quests si absente. Une quête vit pour TOUT le jeu (pas par écran), référencée par id technique depuis l'action "quete" d'une règle de collision (voir screens/rendering/collision_rules.py, quete_id). Les dialogues (voir static/js/quests/quest-editor.js — 3 colonnes nouvelle/en_cours/terminee) sont stockés en JSON plutôt qu'une table à part : jamais interrogés/filtrés côté SQL, toujours lus/réécrits en bloc pour UNE quête à la fois (même convention que _scene_objects.attributes).""" conn = connect(slug) conn.execute( """ CREATE TABLE IF NOT EXISTS _quests ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, objectif TEXT DEFAULT '', recompense_score INTEGER DEFAULT 0, status TEXT DEFAULT 'nouvelle', resultat TEXT, dialogues_json TEXT DEFAULT '{}', created_at TEXT DEFAULT CURRENT_TIMESTAMP ); """ ) conn.commit() conn.close()