#!/usr/bin/env bash
# Ejecutar en Ubuntu después de git pull (solo API + builds si hay Node)
set -euo pipefail

REPO="${1:-/var/www/logicahn-src}"
API="$REPO/backend/laravel-api"
WEB_ROOT="/var/www/logicahn"

echo "=== Git pull ==="
cd "$REPO"
git pull --ff-only

echo ""
echo "=== Laravel API ==="
cd "$API"
composer install --no-dev --optimize-autoloader

if [[ ! -f .env ]]; then
  echo "ERROR: Crea $API/.env desde .env.example"
  exit 1
fi

php artisan config:cache
php artisan route:cache

echo ""
echo "=== Symlink o copia API public ==="
# Ajusta si tu layout es distinto
if [[ -d "$WEB_ROOT/api" ]]; then
  echo "API en $WEB_ROOT/api (actualiza manualmente si hace falta)"
fi

if command -v npm >/dev/null 2>&1; then
  echo ""
  echo "=== Build dashboard (Node detectado) ==="
  cd "$REPO/dashboard"
  npm ci
  npm run build:prod
  mkdir -p "$WEB_ROOT/dash"
  rsync -a --delete dist/ "$WEB_ROOT/dash/"

  echo ""
  echo "=== Build mobile ==="
  cd "$REPO/mobile"
  npm ci
  npm run build:prod
  mkdir -p "$WEB_ROOT/app"
  rsync -a --delete www/ "$WEB_ROOT/app/"
else
  echo ""
  echo "Node no instalado: compila dashboard/mobile en tu PC y sube dist/ y www/."
fi

echo ""
echo "=== Permisos uploads ==="
mkdir -p "$WEB_ROOT/uploads"
chown -R www-data:www-data "$WEB_ROOT/uploads" "$API/storage" "$API/bootstrap/cache" 2>/dev/null || true

echo ""
echo "Deploy terminado. Prueba: curl -s https://api.logicahn.com/api/health"
