"""Apply db/migrations/bridge_v2_per_channel_forecasts.sql."""
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/bridge_v2_per_channel_forecasts.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 columns added ===")
for tbl in ("backtest_results", "forecasts"):
    print(f"\n  {tbl}:")
    for r in db.execute(text("""
        SELECT column_name, data_type
        FROM information_schema.columns
        WHERE table_name = :t AND column_name IN
            ('forecast_retail','forecast_wholesale','actual_retail','actual_wholesale','ws_share')
        ORDER BY column_name
    """), {"t": tbl}).mappings():
        print(f"    {r['column_name']:<22s} {r['data_type']}")
db.close()
