#!/bin/bash
# ════════════════════════════════════════════════════════════════
# post_deploy.sh — Corre esto UNA VEZ después de cada vez que subas
# o actualices el proyecto en el VPS. Deja todo listo: symlinks de
# /api, el .htaccess con la config de PHP-FPM, y los permisos.
#
# Uso:
#   bash post_deploy.sh /var/www/soluciondigital.pro/fullDomino
# ════════════════════════════════════════════════════════════════
set -e

RAIZ="${1:-/var/www/soluciondigital.pro/fullDomino}"

if [ ! -d "$RAIZ" ]; then
  echo "ERROR: no existe la carpeta $RAIZ"
  exit 1
fi

echo "== Usando raíz del proyecto: $RAIZ =="

echo "== 1. Recreando symlink public/api -> ../api =="
rm -rf "$RAIZ/public/api"
ln -s ../api "$RAIZ/public/api"

echo "== 2. Recreando symlink torneos/public/api -> ../api =="
rm -rf "$RAIZ/torneos/public/api"
ln -s ../api "$RAIZ/torneos/public/api"

echo "== 3. Escribiendo .htaccess (PHP-FPM 8.3 + FollowSymLinks + CGIPassAuth) =="
cat > "$RAIZ/.htaccess" << 'HTACCESS'
<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
</FilesMatch>
Options +FollowSymLinks
CGIPassAuth On
HTACCESS

echo "== 4. Permisos: world-readable (seguro sin importar qué usuario corra PHP-FPM) =="
# NOTA: no usamos permisos más restrictivos (ej. 750/640 solo para www-data)
# porque no podemos garantizar que el pool de PHP-FPM corra exactamente como
# ese usuario/grupo en todos los entornos -- eso causó un 500 la primera vez
# que se probó. Si más adelante confirmas el usuario real del pool
# (grep "^user\|^group" /etc/php/8.3/fpm/pool.d/*.conf), se puede endurecer
# a mano apuntando a ese usuario específico.
chown -R root:root "$RAIZ"
find "$RAIZ" -type d -exec chmod 755 {} \;
find "$RAIZ" -type f -exec chmod 644 {} \;

echo "== 5. Verificación rápida =="
ls -la "$RAIZ/public/" | grep api
ls -la "$RAIZ/torneos/public/" | grep api
curl -s -o /dev/null -w "auth_invitado.php -> HTTP %{http_code}\n" \
  -X POST -H "Content-Type: application/json" -d '{"device_id":"test"}' \
  "https://soluciondigital.pro/fullDomino/public/api/auth_invitado.php"

echo ""
echo "Listo. Si el HTTP de arriba dice 200, quedó funcionando."
