from ..connection import connect def ensure_field_bounds_schema(slug: str) -> None: """Migration légère (voir game_engine/screens_repo/ensure_schema.py pour le même principe) : ajoute les colonnes min_value/max_value à _fields pour les jeux créés avant le bornage automatique (2.2), et per_player à _definitions pour les jeux créés avant l'état par joueur (Phase 1) — aucune migration manuelle nécessaire, la prochaine lecture d'une définition suffit. per_player=1 par défaut (comportement le plus proche de l'ancien objet-par-défaut : voir create_definition.py).""" conn = connect(slug) cols = {r["name"] for r in conn.execute("PRAGMA table_info(_fields)").fetchall()} if "min_value" not in cols: conn.execute("ALTER TABLE _fields ADD COLUMN min_value REAL") if "max_value" not in cols: conn.execute("ALTER TABLE _fields ADD COLUMN max_value REAL") definition_cols = {r["name"] for r in conn.execute("PRAGMA table_info(_definitions)").fetchall()} if "per_player" not in definition_cols: conn.execute("ALTER TABLE _definitions ADD COLUMN per_player INTEGER NOT NULL DEFAULT 1") conn.commit() conn.close()