"""Migration: Add adaptive lookback metadata columns to range_trading_scores.

Run:  python3 scripts/migrate_adaptive_lookback.py
"""
from __future__ import annotations

import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).resolve().parent.parent))

from app import create_app
from app.extensions import db
from sqlalchemy import text


def run():
    app = create_app()
    with app.app_context():
        conn = db.engine.connect()
        cols = {
            'lookback_days': 'INT DEFAULT NULL',
            'sr_window': 'INT DEFAULT NULL',
            'sr_timeframe': 'VARCHAR(10) DEFAULT NULL',
        }
        for col_name, col_def in cols.items():
            try:
                conn.execute(text(
                    f'ALTER TABLE range_trading_scores ADD COLUMN {col_name} {col_def}'
                ))
                conn.commit()
                print(f'  ✅ Added column: {col_name}')
            except Exception as e:
                conn.rollback()
                if 'Duplicate column' in str(e) or 'already exists' in str(e):
                    print(f'  ⏭️  Column {col_name} already exists, skipping.')
                else:
                    print(f'  ❌ Error adding {col_name}: {e}')

        conn.close()
        print('\nMigration complete.')


if __name__ == '__main__':
    run()
