"""W-L: 야외 plate(aerial 1순위) 반영 스틸 redo — 커밋 금지.

옥탑 외부(S4/S10/S11/S13/S17)·마트(S8/S19)·경찰서(S22)·어선 갑판(S28).
bgr force 완료 후 실행.
"""
import sys
import time

import requests

BASE = "http://localhost:8000"
PID = "b0ad5c18-5140-4022-a2b0-805de0e5a385"
TARGETS = [
    ("S4sh1", "d12ce657-1ec1-40dc-9648-a452804bccba"),    # L03B02 빌라 전경
    ("S8sh1", "736c91b0-fe57-4c67-af57-8fa51f0b8090"),    # 마트 밤(그룹 anchor 체인)
    ("S10sh5", "c8ad9fec-57ba-42a8-a4e3-7d5e40d4dbfd"),   # L03B04 철문 인서트
    ("S11sh3", "48d60b5a-f269-49c0-b1fe-10e62af198f3"),   # L10B01 계단
    ("S11sh4", "c0734353-fa99-4486-83b3-900efa22d494"),   # L10B02 외곽(사용자 원지적)
    ("S13sh3", "4c1136b9-a9ea-4147-b396-0c9b4ad0557e"),   # L03B03(reuse L03B01)
    ("S17sh1", "c4720cab-72d7-45dc-a6c7-478f293994ac"),   # L03B01 옥상
    ("S19sh4", "d8646357-d11d-4cba-836b-eb9ce30981d5"),   # L08B01 마트 낮
    ("S22sh1", "fa87ee36-3a2a-4725-b219-5168ca4dfc9c"),   # L13B01 경찰서
    ("S28sh5", "affac13f-3a45-48cf-98a4-8799bae6bf71"),   # L17B01 갑판
    ("S28sh7", "1dc95dda-ebfb-41f7-8a19-27047c61594a"),   # L17B02 갑판
]
s = requests.Session()
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)
only = sys.argv[1] if len(sys.argv) > 1 else None
for tag, sid in TARGETS:
    if only and only != tag:
        continue
    t0 = time.time()
    try:
        r = s.post(
            f"{BASE}/api/v1/projects/{PID}/stills/{sid}/generate-image",
            json={}, timeout=900)
        print(f"[{tag}] {r.status_code} {time.time()-t0:.0f}s "
              f"{r.text[:200]}", flush=True)
    except Exception as exc:
        print(f"[{tag}] EXC {exc}", flush=True)
print("[done]", flush=True)
