"""Apply db/migrations/monthly_plan_snapshots.sql to the live DB."""
import sys
sys.stdout.reconfigure(encoding="utf-8")
from pathlib import Path
from backend.models.database import SessionLocal
from sqlalchemy import text

sql = Path("db/migrations/monthly_plan_snapshots.sql").read_text(encoding="utf-8")
db = SessionLocal()
try:
    raw = db.connection().connection
    with raw.cursor() as cur:
        cur.execute(sql)
    db.commit()
    print("OK migration applied")
except Exception as e:
    db.rollback()
    print(f"FAIL: {e}")
    raise
finally:
    db.close()

db = SessionLocal()
print()
print("=== Verify ===")
for r in db.execute(text("""
    SELECT column_name, data_type
    FROM information_schema.columns
    WHERE table_name = 'monthly_plan_snapshots'
    ORDER BY ordinal_position
""")).mappings():
    print(f"  {r['column_name']:<22s} {r['data_type']}")
db.close()
