"""
One-off: MLBB Brazil cheapest package via run_auto_order (smile_auth.json).
Usage:
  set GAME_ID / SERVER_ID env (MLBB User ID and Zone ID)
  python tools/run_br_mlbb_smoke_order.py
"""

from __future__ import annotations

import os
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
os.chdir(ROOT)


def main() -> None:
    try:
        from dotenv import load_dotenv

        load_dotenv(ROOT / ".env")
    except ImportError:
        pass

    game_id = (os.environ.get("GAME_ID") or "").strip()
    server_id = (os.environ.get("SERVER_ID") or "").strip()
    if not game_id or not server_id:
        print("[smoke-br] Set GAME_ID and SERVER_ID (MLBB User ID and Zone ID).")
        sys.exit(1)
    url = "https://www.smile.one/merchant/mobilelegends"

    from currency import parse_brl_to_cents
    from order_automation import run_auto_order
    from scraper_playwright import run_game_packages_cached

    print(f"[smoke-br] Scraping packages: {url}")
    data = run_game_packages_cached(url, bypass_cache=True)
    rows = data.get("packages") or []

    best_row = None
    best_cents: int | None = None
    for p in rows:
        pt = (p.get("price_text") or "").strip()
        c = parse_brl_to_cents(pt)
        if c is None or c <= 0:
            continue
        if c <= 0:
            continue
        if best_cents is None or c < best_cents:
            best_cents = c
            best_row = p

    if not best_row or best_cents is None:
        print("[smoke-br] ERROR: no BRL package found")
        sys.exit(1)

    li = str((best_row.get("smile_li_id") or "")).strip()
    name = (best_row.get("name") or "").strip()
    print(f"[smoke-br] Cheapest: brl_cents={best_cents} li_id={li!r} name={name[:60]!r}")

    result = run_auto_order(
        url,
        package_brl_cents=best_cents,
        package_php_cents=None,
        package_name=name,
        package_index=None,
        form_data={"game_id": game_id, "server_id": server_id},
        smile_li_id=li or None,
    )
    print("[smoke-br] Result:", result)


if __name__ == "__main__":
    main()
