import os import psycopg2 import psycopg2.extras DB_HOST = os.getenv("DB_HOST", "localhost") DB_PORT = int(os.getenv("DB_PORT", 5432)) DB_NAME = os.getenv("DB_NAME", "fallout") DB_USER = os.getenv("DB_USER", "fallout") DB_PASS = os.getenv("DB_PASSWORD", "VeniceOfWasteland2026!") def get_conn(): return psycopg2.connect( host=DB_HOST, port=DB_PORT, dbname=DB_NAME, user=DB_USER, password=DB_PASS ) def query(sql, params=None): conn = get_conn() try: with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as cur: cur.execute(sql, params) return [dict(r) for r in cur.fetchall()] finally: conn.close() def query_one(sql, params=None): rows = query(sql, params) return rows[0] if rows else None def execute(sql, params=None): conn = get_conn() try: with conn.cursor() as cur: cur.execute(sql, params) conn.commit() finally: conn.close() def get_all_sessions(): return query("SELECT * FROM sessions ORDER BY id")