#!/bin/bash
EID=286f3ba4-5738-49b7-a7e4-ce0295fd4352
PID=a7f80ab9-e97b-420c-a380-3beccb0bcfe5
Q() { PGPASSWORD=theroad_dev_2026 psql -h localhost -U theroad -d theroad -t -A -c "$1" 2>/dev/null; }
stable=0
last_imgs=-1
for i in $(seq 1 90); do
  done=$(Q "SELECT COUNT(*) FILTER (WHERE status='completed') FROM step_run WHERE episode_id='$EID';")
  running=$(Q "SELECT COUNT(*) FROM step_run WHERE episode_id='$EID' AND status='running';")
  imgs=$(Q "SELECT COUNT(*) FROM image_asset WHERE episode_id='$EID';")
  ents=$(Q "SELECT COUNT(*) FROM entity_canon WHERE project_id='$PID';")
  stills=$(Q "SELECT COUNT(*) FROM scene_still WHERE episode_id='$EID';")
  cur=$(Q "SELECT step_id FROM step_run WHERE episode_id='$EID' AND status='running' ORDER BY updated_at DESC LIMIT 1;")
  echo "[poll $i] done=$done running=$running ents=$ents stills=$stills imgs=$imgs cur=$cur"
  # stage A done heuristics: images reached near-cap, OR no running step stable across 3 checks (90s) with steps done
  if [ "$imgs" -ge 48 ]; then echo "DONE: image cap reached ($imgs)"; exit 0; fi
  if [ "$running" = "0" ] && [ "$done" -ge 40 ]; then
    stable=$((stable+1))
    if [ "$stable" -ge 3 ]; then echo "DONE: pipeline idle stable (done=$done imgs=$imgs)"; exit 0; fi
  else
    stable=0
  fi
  last_imgs=$imgs
  sleep 30
done
echo "WATCH TIMEOUT after 45min"
