#!/bin/bash
# Recuperación completa de la DB tras una reinicialización (deploy que vació
# supabase-db). Orden:
#   1. Todas las migraciones (scripts/apply_all_migrations.sh)
#   2. Catálogo de encuestas (supabase/seed.sql) — sin esto, las migraciones
#      dejan organizations/surveys/questions vacías y nada de lo que sigue
#      tiene contra qué referenciar (setup_first_admin.sql sí funcionaría,
#      pero seed_prueba_50.sql fallaría: rpc_submit_response necesita
#      questions.id reales, que solo existen después de este paso).
#   3. Usuario platform_admin (scripts/setup_first_admin.sql)
#   4. Datos de prueba (docs/dashboard/seed_prueba_50.sql)
#
# Uso:
#   ADMIN_EMAIL='admin@inquality.com.py' ADMIN_PASSWORD='...' scripts/setup_all.sh
set -e

SCRIPT_DIR="$(dirname "$0")"
ROOT_DIR="$SCRIPT_DIR/.."

if [ -z "$ADMIN_EMAIL" ] || [ -z "$ADMIN_PASSWORD" ]; then
  echo "ERROR: ADMIN_EMAIL y ADMIN_PASSWORD son obligatorios (variables de entorno)." >&2
  exit 1
fi

echo "== 1/4: Aplicando todas las migraciones =="
"$SCRIPT_DIR/apply_all_migrations.sh"

echo "== 2/4: Sembrando catálogo de encuestas (supabase/seed.sql) =="
# ADVERTENCIA propia del archivo: "SOLO ENTORNOS DE DESARROLLO — nunca ejecutar
# en producción". Esa advertencia es para NO re-correrlo contra una DB con
# datos reales (DELETE+INSERT de questions con UUIDs nuevos puede chocar con
# answers existentes via FK). En este escenario de recuperación la DB está
# vacía (reinicializada por el deploy) — no hay answers/responses que puedan
# quedar huérfanas. Si la DB NO está realmente vacía, frenar antes de este paso.
docker exec -i supabase-db psql -v ON_ERROR_STOP=1 -U postgres -d postgres < "$ROOT_DIR/supabase/seed.sql"

echo "== 3/4: Creando usuario platform_admin =="
docker exec -i supabase-db psql -v ON_ERROR_STOP=1 -U postgres -d postgres \
  -v email="$ADMIN_EMAIL" -v password="$ADMIN_PASSWORD" \
  < "$ROOT_DIR/scripts/setup_first_admin.sql"

echo "== 4/4: Sembrando datos de prueba (seed_prueba_50.sql) =="
docker exec -i supabase-db psql -v ON_ERROR_STOP=1 -U postgres -d postgres < "$ROOT_DIR/docs/dashboard/seed_prueba_50.sql"

echo "Setup completo."
