import pytest

pytest.skip("Manual TAB API exploration script.", allow_module_level=True)

import time
from datetime import date, timedelta

import requests

BASE = "https://api.tab.co.nz/affiliates/v1"
SESSION = requests.Session()


def list_races(date_yyyy_mm_dd: str, meet_type: str = None):
    races = []
    page_token = None

    while True:
        params = {
            "date_from": date_yyyy_mm_dd,
            "date_to": date_yyyy_mm_dd,
            "limit": 200,
            "enc": "json",
        }
        if meet_type:
            params["meet_types"] = meet_type

        if page_token:
            params["page_token"] = page_token

        print(f"Requesting: {BASE}/racing/list with params: {params}")
        r = SESSION.get(f"{BASE}/racing/list", params=params, timeout=30)
        r.raise_for_status()
        data = r.json()

        races.extend(data.get("races", []))
        page_token = data.get("next_page_token")
        if not page_token:
            break

        time.sleep(0.1)

    return races


def main():
    # Try today and yesterday
    today = date.today()
    yesterday = today - timedelta(days=1)

    for test_date in [str(today), str(yesterday)]:
        print(f"\n{'='*60}")
        print(f"Checking date: {test_date}")
        print(f"{'='*60}")

        for meet_type in [None, "H", "T", "G"]:
            type_label = meet_type or "ALL"
            races = list_races(test_date, meet_type)
            print(f"{type_label}: Found {len(races)} races on {test_date}")

            if races and len(races) <= 3:
                for race in races[:3]:
                    print(
                        f"  - {race.get('meeting_name', 'Unknown')} R{race.get('number', '?')}: {race.get('name', 'Unknown')}"
                    )


if __name__ == "__main__":
    main()
