#!/usr/bin/env python3
"""Monta grid 4x3 com os 12 criativos (piloto + 11) pro Renato ter visão de conjunto."""

from PIL import Image, ImageDraw, ImageFont
from pathlib import Path

BASE = Path("/opt/mia/workspace/clientes/px3lab/criativos_lancamento_1007")

ORDER = [
    ("01 · PILOTO", BASE / "piloto_est_01_separacao_sem_cadastro/piloto_est_01_separacao_sem_cadastro.png"),
    ("02 · FILA ROLANDO", BASE / "02_fila_rolando/02_fila_rolando.png"),
    ("03 · BABYSITAR", BASE / "03_babysitar/03_babysitar.png"),
    ("04 · 3 ETAPAS", BASE / "04_verificacao_tripla/04_verificacao_tripla.png"),
    ("05 · ESQUECIDO", BASE / "05_formando_esquecido/05_formando_esquecido.png"),
    ("06 · PARENTES", BASE / "06_parentes_sozinhos/06_parentes_sozinhos.png"),
    ("07 · OLHO FECHADO", BASE / "07_olho_fechado/07_olho_fechado.png"),
    ("08 · VIZINHANCA", BASE / "08_vizinhanca/08_vizinhanca.png"),
    ("09 · SIMILARES", BASE / "09_similares/09_similares.png"),
    ("10 · FUNDOS", BASE / "10_revisao_fundos/10_revisao_fundos.png"),
    ("11 · WIN/MAC", BASE / "11_windows_mac/11_windows_mac.png"),
    ("12 · API", BASE / "12_integracao_api/12_integracao_api.png"),
]

THUMB = 420  # cada criativo vira 420x420
GAP = 20
LABEL_H = 36
COLS = 4
ROWS = 3
MARGIN = 40

W = MARGIN * 2 + COLS * THUMB + (COLS - 1) * GAP
H = MARGIN * 2 + ROWS * (THUMB + LABEL_H) + (ROWS - 1) * GAP

grid = Image.new("RGB", (W, H), "#0a0a0c")
draw = ImageDraw.Draw(grid)

try:
    font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 18)
except Exception:
    font = ImageFont.load_default()

for idx, (label, path) in enumerate(ORDER):
    row = idx // COLS
    col = idx % COLS
    x = MARGIN + col * (THUMB + GAP)
    y = MARGIN + row * (THUMB + LABEL_H + GAP)
    img = Image.open(path).convert("RGB").resize((THUMB, THUMB), Image.LANCZOS)
    grid.paste(img, (x, y))
    draw.text((x + 6, y + THUMB + 8), label, fill="#A6E22E", font=font)

out = BASE / "preview_grid.jpg"
grid.save(out, "JPEG", quality=88, optimize=True)
print(f"[OK] {out} ({grid.size[0]}x{grid.size[1]}, {out.stat().st_size // 1024} KB)")
