#!/usr/bin/env python3
"""
Reset Live Racing data for testing purposes.

Resets all event_race rows back to open, clears results/dividends,
and sets all live racing bets back to pending.

Usage:
    python reset_live_racing.py
"""
import subprocess
import sys

DB_HOST = '127.0.0.1'
DB_PORT = '3306'
DB_USER = 'root'
DB_PASS = 'Abc123'
DB_NAME = 'vk'

SQL = """UPDATE event_race SET status = 'open', result = NULL, result_set_at = NULL, is_settled = 0;
DELETE FROM event_dividend;
UPDATE live_racing_bet SET status = 'pending', payout = NULL, settled_at = NULL;
DELETE FROM live_racing_commission;
"""


def main():
    # Try using the mysql CLI via Docker
    docker_cmd = [
        'docker', 'exec', '-i', 'php-takehome-redis-1',
        'mysql', f'-h{DB_HOST}', f'-P{DB_PORT}', f'-u{DB_USER}', f'-p{DB_PASS}', DB_NAME,
    ]

    try:
        result = subprocess.run(
            docker_cmd,
            input=SQL,
            capture_output=True,
            text=True,
            timeout=30,
        )
        if result.returncode != 0:
            # Fallback: try PHP via Docker
            php_cmd = [
                'docker', 'exec', '-i', 'php-takehome-redis-1',
                'php', '-r',
                '$c=new PDO("mysql:host=' + DB_HOST + ';port=' + DB_PORT + ';dbname=' + DB_NAME + '","' + DB_USER + '","' + DB_PASS + '");'
                '$c->exec("UPDATE event_race SET status=\'open\',result=NULL,result_set_at=NULL,is_settled=0");'
                'echo "event_race reset\n";'
                '$c->exec("DELETE FROM event_dividend");'
                'echo "dividends deleted\n";'
                '$c->exec("UPDATE live_racing_bet SET status=\'pending\',payout=NULL,settled_at=NULL");'
                'echo "bets reset\n";'
                '$c->exec("DELETE FROM live_racing_commission");'
                'echo "commissions deleted\n";'
            ]
            result2 = subprocess.run(php_cmd, capture_output=True, text=True, timeout=30)
            if result2.returncode == 0:
                print(result2.stdout)
                print('\u2713 All data reset successfully.')
                return
            print('\u2717 Failed. Error:', result.stderr or result2.stderr)
            sys.exit(1)

        print(result.stdout or 'Done.')
        print('\u2713 All data reset successfully.')

    except FileNotFoundError:
        print('\u2717 docker not found.')
        print(f'  Run directly: mysql -h{DB_HOST} -u{DB_USER} -p{DB_PASS} {DB_NAME} < reset_live_racing.sql')
        sys.exit(1)


if __name__ == '__main__':
    main()
