#!/usr/bin/env bash
#
# Passo `postBuild` do amplify.yml — roda depois de `npx next build`.
#
# Responsabilidade única: avisar a Cloudflare (que fica na frente do
# Amplify, ver docs/specs/2026-08-03-architecture-roadmap-design.md) de que
# um novo build deste ambiente acabou de ficar pronto, purgando só os hosts
# deste ambiente — nunca `purge_everything` (ver Global Constraints do
# projeto e docs/specs/2026-08-03-ambientes-e-credenciais.md).
#
# CLOUDFLARE_ZONE_ID / CLOUDFLARE_API_TOKEN / CLOUDFLARE_PURGE_HOSTS são
# variáveis de ambiente de build configuradas no Console do Amplify (App
# settings → Environment variables), por ambiente (hml/prd) — nunca
# hardcoded neste arquivo. Isso é deliberado: os dois precedentes disponíveis
# (hg_asia_import do jbm-brindes, e o post-build.sh real do asia-import-site,
# que commitava token de zona da Cloudflare e webhook do Slack em texto
# puro) são exatamente o erro que este script existe para não repetir.
set -euo pipefail

echo "==> post-build: build do frontend concluído."

if [ -z "${CLOUDFLARE_ZONE_ID:-}" ] || [ -z "${CLOUDFLARE_API_TOKEN:-}" ] || [ -z "${CLOUDFLARE_PURGE_HOSTS:-}" ]; then
  # Convenção idêntica à do Cloudflare_Purger no backend (Tarefa 8): sem
  # credencial configurada, a purga é no-op — não é um erro (ex.: branch de
  # preview do Amplify sem Cloudflare na frente).
  echo "==> post-build: CLOUDFLARE_ZONE_ID/CLOUDFLARE_API_TOKEN/CLOUDFLARE_PURGE_HOSTS ausentes — purga é no-op."
  exit 0
fi

# CLOUDFLARE_PURGE_HOSTS é uma lista separada por vírgula (ex.:
# "www.brindara.com.br" em prd, "hml.brindara.com.br" em hml) — purga só
# esses hosts, nunca a zona inteira.
IFS=',' read -ra HOSTS <<< "$CLOUDFLARE_PURGE_HOSTS"
HOSTS_JSON=$(printf '"%s",' "${HOSTS[@]}")
HOSTS_JSON="${HOSTS_JSON%,}"

echo "==> post-build: purgando cache da Cloudflare para: ${CLOUDFLARE_PURGE_HOSTS}"

curl -sS -X POST "https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/purge_cache" \
  -H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
  -H "Content-Type: application/json" \
  --data "{\"hosts\": [${HOSTS_JSON}]}"

echo ""
echo "==> post-build: concluído."
