#!/usr/bin/env bash
# render_variations.sh
# Renders 27 variation PNGs (9 presets × 3 each) for the Cockpit preview strip.
# Output: ~/.claude/skills/arte-engine/out/variations/<code>-v<N>.png
# Usage: bash render_variations.sh

set -uo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SKILL_DIR="$(dirname "$SCRIPT_DIR")"
OUT_DIR="$SKILL_DIR/out/variations"
RENDER_PY="$SCRIPT_DIR/render.py"
ASSETS="/Users/matheusfilipe/.claude/skills/squad-posts-design/assets"

mkdir -p "$OUT_DIR"

OK=0
FAIL=0

run_render() {
  local preset="$1"     # full template name e.g. 01-glass-live
  local ratio="$2"
  local variant="$3"
  local data_json="$4"
  # Output filename uses code only (strip leading NN- prefix)
  local code="${preset#??-}"
  local out_file="$OUT_DIR/${code}-v${variant}.png"

  echo "  Rendering $preset v$variant..."
  if python3 "$RENDER_PY" \
      --preset "$preset" \
      --ratio "$ratio" \
      --slide 1 \
      --total 1 \
      --scale 2 \
      --data "$data_json" \
      --output "$out_file" 2>&1; then
    echo "  OK: $out_file"
    OK=$((OK + 1))
  else
    echo "  FAIL: $preset v$variant"
    FAIL=$((FAIL + 1))
  fi
}

echo ""
echo "=== 01 glass-live (9x16, accent #E7FF75) ==="
BG01="file://$ASSETS/golden-04-backlit-field.png"
run_render "01-glass-live" "9x16" "1" \
  "{\"headline\":\"Criando uma campanha completa.\",\"subtext\":\"Tudo num só encontro.\",\"kicker\":\"AO VIVO\",\"accent\":\"#E7FF75\",\"bg_image_url\":\"$BG01\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "01-glass-live" "9x16" "2" \
  "{\"headline\":\"Direção e IA num mesmo set.\",\"subtext\":\"Como a Squad opera.\",\"kicker\":\"WORKSHOP\",\"accent\":\"#E7FF75\",\"bg_image_url\":\"$BG01\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "01-glass-live" "9x16" "3" \
  "{\"headline\":\"Da ideia ao ar em 7 dias.\",\"subtext\":\"Processo Squad ao vivo.\",\"kicker\":\"MASTERCLASS\",\"accent\":\"#E7FF75\",\"bg_image_url\":\"$BG01\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

echo ""
echo "=== 02 squad-editorial (4x5, accent #179BC7) ==="
BG02="file://$ASSETS/golden-02-figure-dusk.png"
run_render "02-squad-editorial" "4x5" "1" \
  "{\"headline\":\"NÃO FAZEMOS VÍDEOS. CONTAMOS HISTÓRIAS.\",\"accent\":\"#179BC7\",\"bg_image_url\":\"$BG02\",\"kicker\":\"MANIFESTO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "02-squad-editorial" "4x5" "2" \
  "{\"headline\":\"CINEMA DE PERFORMANCE. POR DIRETORES.\",\"accent\":\"#179BC7\",\"bg_image_url\":\"$BG02\",\"kicker\":\"CINEMA\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "02-squad-editorial" "4x5" "3" \
  "{\"headline\":\"A LUZ DECIDE TUDO. O RESTO, A GENTE EXECUTA.\",\"accent\":\"#179BC7\",\"bg_image_url\":\"$BG02\",\"kicker\":\"DIREÇÃO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

echo ""
echo "=== 03 editorial-carousel-ai (4x5, accent #E7FF75) ==="
run_render "03-editorial-carousel-ai" "4x5" "1" \
  "{\"headline\":\"→ A ferramenta acelera. A direção decide.\",\"accent\":\"#E7FF75\",\"kicker\":\"IA + DIREÇÃO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "03-editorial-carousel-ai" "4x5" "2" \
  "{\"headline\":\"→ IA não substitui referência. Substitui rascunho.\",\"accent\":\"#E7FF75\",\"kicker\":\"IA + DIREÇÃO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "03-editorial-carousel-ai" "4x5" "3" \
  "{\"headline\":\"→ Roteiro virou prompt. Direção continua humana.\",\"accent\":\"#E7FF75\",\"kicker\":\"IA + DIREÇÃO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

echo ""
echo "=== 04 academypass-gradient (4x5) ==="
run_render "04-academypass-gradient" "4x5" "1" \
  "{\"headline\":\"Academia de creators.\",\"kicker\":\"ACADEMY\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "04-academypass-gradient" "4x5" "2" \
  "{\"headline\":\"Aprenda direção visual.\",\"kicker\":\"ACADEMY\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "04-academypass-gradient" "4x5" "3" \
  "{\"headline\":\"Plataforma para creative directors.\",\"kicker\":\"ACADEMY\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

echo ""
echo "=== 05 glass-academy (9x16, accent #E7FF75) ==="
BG05="file://$ASSETS/golden-04-backlit-field.png"
run_render "05-glass-academy" "9x16" "1" \
  "{\"headline\":\"Toolkit completo do diretor.\",\"accent\":\"#E7FF75\",\"bg_image_url\":\"$BG05\",\"kicker\":\"ACADEMY\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "05-glass-academy" "9x16" "2" \
  "{\"headline\":\"Workflow de quem entrega.\",\"accent\":\"#E7FF75\",\"bg_image_url\":\"$BG05\",\"kicker\":\"ACADEMY\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "05-glass-academy" "9x16" "3" \
  "{\"headline\":\"Bibliotecas, prompts, presets.\",\"accent\":\"#E7FF75\",\"bg_image_url\":\"$BG05\",\"kicker\":\"ACADEMY\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

echo ""
echo "=== 06 human-reference (9x16) ==="
BG06="file://$ASSETS/golden-03-man-trees.png"
run_render "06-human-reference" "9x16" "1" \
  "{\"headline\":\"Referências humanas. Resultado humano.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG06\",\"kicker\":\"REFERÊNCIA\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "06-human-reference" "9x16" "2" \
  "{\"headline\":\"Direção começa antes da câmera.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG06\",\"kicker\":\"REFERÊNCIA\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "06-human-reference" "9x16" "3" \
  "{\"headline\":\"O olhar é a tecnologia.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG06\",\"kicker\":\"REFERÊNCIA\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

echo ""
echo "=== 07 cinema-studio-narrative (9x16) ==="
BG07="file://$ASSETS/golden-01-tree-sea.png"
run_render "07-cinema-studio-narrative" "9x16" "1" \
  "{\"headline\":\"Consistência visual em 5 takes.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG07\",\"kicker\":\"CINEMA STUDIO\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "07-cinema-studio-narrative" "9x16" "2" \
  "{\"headline\":\"Mesma personagem. Cinco mundos.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG07\",\"kicker\":\"CINEMA STUDIO\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "07-cinema-studio-narrative" "9x16" "3" \
  "{\"headline\":\"Pré-produção feita por IA dirigida.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG07\",\"kicker\":\"CINEMA STUDIO\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

echo ""
echo "=== 08 human-update-dark (9x16) ==="
BG08="file://$ASSETS/photo-walking.png"
run_render "08-human-update-dark" "9x16" "1" \
  "{\"headline\":\"Update // versão diretor.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG08\",\"kicker\":\"DROP\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "08-human-update-dark" "9x16" "2" \
  "{\"headline\":\"Drop // bastidor cinematográfico.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG08\",\"kicker\":\"DROP\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

run_render "08-human-update-dark" "9x16" "3" \
  "{\"headline\":\"Patch // novo preset disponível.\",\"accent\":\"#E8FF7A\",\"bg_image_url\":\"$BG08\",\"kicker\":\"DROP\",\"footer_l\":\"@human__academy\",\"footer_r\":\"2026\"}"

echo ""
echo "=== 09 type-slab (4x5, accent #179BC7) ==="
run_render "09-type-slab" "4x5" "1" \
  "{\"headline\":\"Cinema. é *direção*.\",\"accent\":\"#179BC7\",\"kicker\":\"MANIFESTO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "09-type-slab" "4x5" "2" \
  "{\"headline\":\"Frame que vira *história*.\",\"accent\":\"#179BC7\",\"kicker\":\"MANIFESTO\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

run_render "09-type-slab" "4x5" "3" \
  "{\"headline\":\"Não fazemos vídeos. *contamos histórias*.\",\"accent\":\"#179BC7\",\"kicker\":\"SQUAD FILM\",\"footer_l\":\"squadfilm.com\",\"footer_r\":\"SQUAD /// FILM\"}"

echo ""
echo "============================="
echo "Render complete: $OK OK, $FAIL FAILED out of 27"
echo "============================="
