#!/usr/bin/env bash
# Rollback WordPress page 2873 (server-photorf) para o estado ANTERIOR ao deploy Server PhotoRF.
# Backup capturado em 2026-08-18 13:00:43 - o content raw estava VAZIO (page stub).
#
# Uso:  bash /opt/mia/workspace/clientes/px3lab/backups/rollback_page_2873.sh
#
# O que faz: reseta o content da page 2873 para string vazia (estado stub original).

set -euo pipefail

BACKUP_JSON="/opt/mia/workspace/clientes/px3lab/backups/wp_page_2873_pre_serverphotorf_20260818_130043.json"
WP_URL="https://www.px3lab.com.br/wp-json/wp/v2/pages/2873"
WP_USER="Renato Moraes"
WP_PASS="yo1N h4bu dJyh EN4S aJr7 Tj0H"

if [[ ! -f "$BACKUP_JSON" ]]; then
  echo "ERRO: backup nao encontrado em $BACKUP_JSON"
  exit 1
fi

# Extrair o content.raw original (era string vazia)
ORIGINAL_CONTENT=$(python3 -c "
import json
with open('$BACKUP_JSON') as f:
    d = json.load(f)
print(d.get('content', {}).get('raw', ''))
")

echo "Restaurando page 2873 para o estado original (content vazio)..."

RESPONSE=$(curl -s -u "$WP_USER:$WP_PASS" \
  -X POST "$WP_URL" \
  -H "Content-Type: application/json" \
  -d "{\"content\": $(python3 -c "import json,sys; print(json.dumps(sys.argv[1]))" "$ORIGINAL_CONTENT")}" \
  -w "\nHTTP_CODE:%{http_code}")

CODE=$(echo "$RESPONSE" | tail -1 | sed 's/HTTP_CODE://')
BODY=$(echo "$RESPONSE" | head -n -1)

if [[ "$CODE" == "200" ]]; then
  MODIFIED=$(echo "$BODY" | python3 -c "import json,sys; print(json.load(sys.stdin).get('modified',''))")
  LEN=$(echo "$BODY" | python3 -c "import json,sys; print(len(json.load(sys.stdin).get('content',{}).get('raw','')))")
  echo "OK - Modified: $MODIFIED - Content len apos rollback: $LEN"
  echo "Verifique em https://www.px3lab.com.br/server-photorf/ (pode precisar purge de cache)"
else
  echo "ERRO HTTP $CODE"
  echo "$BODY" | head -c 500
  exit 1
fi
