#!/usr/bin/env bash
# =====================================================================
#  Preparar la plataforma para las pruebas reales de FEVAL
#
#  Este script SOLO copia archivos. NO borra nada por su cuenta:
#  el borrado del demo y la carga de la base los ejecutas tu despues,
#  paso a paso, para que tengas el control.
#
#  Uso:  bash aplicar.sh            (o)   bash aplicar.sh /ruta/a/la/app
# =====================================================================
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SRC="$SCRIPT_DIR/files"
APP_ROOT="${1:-$(cd "$SCRIPT_DIR/.." && pwd)}"

echo "==============================================================="
echo " Preparar datos de FEVAL - copia de archivos"
echo " Raiz de la app: $APP_ROOT"
echo "==============================================================="
if [ ! -f "$APP_ROOT/public/index.php" ] || [ ! -d "$APP_ROOT/app" ]; then
  echo "ERROR: '$APP_ROOT' no parece la raiz de la app (falta public/index.php o app/)."
  echo "       Ejecuta indicando la ruta:  bash aplicar.sh ~/public_html/feval"
  exit 1
fi

STAMP="$(date +%Y%m%d-%H%M%S)"
BACKUP="$APP_ROOT/_backup-datos-$STAMP"
mkdir -p "$BACKUP"
echo "Respaldo de los originales en: $BACKUP"
echo "--- Copiando archivos -----------------------------------------"
cd "$SRC"
while IFS= read -r rel; do
  rel="${rel#./}"
  dest="$APP_ROOT/$rel"
  if [ -f "$dest" ]; then
    mkdir -p "$BACKUP/$(dirname "$rel")"
    cp -p "$dest" "$BACKUP/$rel"
  fi
  mkdir -p "$(dirname "$dest")"
  cp -f "$SRC/$rel" "$dest"
  chmod 644 "$dest"
  echo "  [OK] $rel"
done < <(find . -type f)

# La base de asociados queda en datos/ dentro de la app
mkdir -p "$APP_ROOT/datos"
if [ -d "$SCRIPT_DIR/datos" ]; then
  cp -f "$SCRIPT_DIR"/datos/*.xlsx "$APP_ROOT/datos/" 2>/dev/null || true
  chmod 644 "$APP_ROOT"/datos/*.xlsx 2>/dev/null || true
  echo "  [OK] datos/ (base de asociados)"
fi

chmod 755 "$APP_ROOT/scripts" "$APP_ROOT/datos" 2>/dev/null || true
mkdir -p "$APP_ROOT/storage/uploads"
chmod -R 755 "$APP_ROOT/storage" 2>/dev/null || true

echo "==============================================================="
echo " ARCHIVOS COPIADOS. Ahora ejecuta TU los siguientes pasos:"
echo "==============================================================="
echo ""
echo " PASO 1 - Ver que se va a borrar y que se va a crear (NO cambia nada):"
echo "   cd $APP_ROOT"
echo "   php scripts/preparar-produccion.php"
echo ""
echo " PASO 2 - Si estas de acuerdo, ejecutarlo de verdad:"
echo "   php scripts/preparar-produccion.php --confirmar \\"
echo "       --admin-nosotros=TU_CORREO --admin-feval=CORREO_DE_FEVAL"
echo "   (GUARDA las contrasenas que imprime: no se vuelven a mostrar)"
echo ""
echo " PASO 3 - Crear los beneficios con su imagen y asignar oferta y"
echo "          presupuesto por zona, desde el panel (Parametrizacion)."
echo ""
echo " PASO 4 - Cargar los 2.991 asociados:"
echo "   php scripts/cargar-base.php datos/Base-Asociados-FEVAL-lista-para-cargar.xlsx"
echo ""
echo " Respaldo de archivos: $BACKUP"
echo "==============================================================="
