import pytest

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

import time

import requests

BASE = "https://api.tab.co.nz/affiliates/v1"

SESSION = requests.Session()

YESTERDAY_NZ = "2026-01-05"  # yesterday relative to Jan 6, 2026


def list_harness_races(date_yyyy_mm_dd: str):
    races = []
    page_token = None

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

        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 get_race(race_id: str):
    params = {"enc": "json"}
    r = SESSION.get(f"{BASE}/racing/events/{race_id}", params=params, timeout=30)
    r.raise_for_status()
    return r.json()


def main():
    races = list_harness_races(YESTERDAY_NZ)

    print(f"Found {len(races)} harness races on {YESTERDAY_NZ}")

    for i, race_stub in enumerate(races, 1):
        race_id = race_stub["id"]
        meeting_id = race_stub.get("meeting_id")
        race_no = race_stub.get("number")
        race_name = race_stub.get("name")

        print(
            f"\n[{i}/{len(races)}] meeting_id={meeting_id} race={race_no} {race_name} id={race_id}"
        )

        race = get_race(race_id)

        # Adjust this to extract placings, dividends, etc.
        print("  keys:", list(race.keys()))

        time.sleep(0.1)


if __name__ == "__main__":
    main()
