#!/usr/bin/env python3
"""W-G canary 드라이버 — 커밋 금지.

usage:
  python wg_canary.py osl        # outdoor_site_layout force
  python wg_canary.py bgr        # background_render force
  python wg_canary.py status <step>  # step_run 최신 상태
"""
import sys
import json
import time

import requests

BASE = "http://localhost:8000"
PID = "b0ad5c18-5140-4022-a2b0-805de0e5a385"
EID = "0d30302a-51c8-4ac9-98e2-6cd9180512bf"

s = requests.Session()


def login():
    r = s.post(f"{BASE}/api/v1/auth/login",
               json={"username": "admin", "password": "admin123"}, timeout=30)
    r.raise_for_status()
    print("[login] ok", flush=True)


def run_step(step_id, mode="force"):
    login()
    t0 = time.time()
    r = s.post(
        f"{BASE}/api/v1/projects/{PID}/episodes/{EID}/steps/{step_id}",
        params={"mode": mode}, timeout=3600,
    )
    print(f"[{step_id}] status={r.status_code} elapsed={int(time.time()-t0)}s",
          flush=True)
    try:
        print(json.dumps(r.json(), ensure_ascii=False)[:1500], flush=True)
    except Exception:
        print(r.text[:1500], flush=True)


if __name__ == "__main__":
    cmd = sys.argv[1] if len(sys.argv) > 1 else "osl"
    if cmd == "osl":
        run_step("outdoor_site_layout")
    elif cmd == "bgr":
        run_step("background_render")
    else:
        print(f"unknown {cmd}")
