#!/usr/bin/env bash
# Compila e reinicia o LeadB2B — um comando só.
# Uso: ./scripts/update.sh
# Como root no cPanel: cd /home/leadb2b/public_html/leadb2b.org && ./scripts/update.sh
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"

APP_USER="${APP_USER:-leadb2b}"
PUBLIC_HTML="${PUBLIC_HTML:-/home/${APP_USER}/public_html}"
LOG="${LOG:-/home/${APP_USER}/logs/leadb2b.log}"
PORT="${PORT:-8080}"

run_as_app() {
  if [[ "${EUID:-$(id -u)}" -eq 0 ]]; then
    su - "$APP_USER" -c "$*"
  else
    bash -lc "$*"
  fi
}

step() { echo ""; echo "==> $*"; }

step "permissões dos scripts"
chmod +x scripts/*.sh

step "compilar"
./scripts/build.sh

if [[ ! -f site/images/home-3/banner1.jpg ]]; then
  echo ""
  echo "AVISO: site/images/ incompleto — o layout ficará sem fotos/logos reais."
  echo "       Rode 'git pull' completo ou copie a pasta site/images/ do tema Jobzilla."
fi

if [[ "${EUID:-$(id -u)}" -eq 0 ]]; then
  step "ajustar dono dos arquivos ($APP_USER)"
  chown -R "$APP_USER:$APP_USER" "$ROOT"
fi

step "parar instância anterior"
run_as_app "cd '$ROOT' && ./scripts/stop.sh" || true
# fallback: matar processo órfão na porta
if command -v fuser >/dev/null 2>&1; then
  fuser -k "${PORT}/tcp" 2>/dev/null || true
fi

step "iniciar LeadB2B"
mkdir -p "$(dirname "$LOG")"
run_as_app "cd '$ROOT' && ./scripts/start.sh"

if [[ -f "$ROOT/deploy/cpanel-public_html.htaccess" ]] && [[ -d "$PUBLIC_HTML" ]]; then
  step "proxy do domínio (.htaccess)"
  if [[ ! -f "$PUBLIC_HTML/.htaccess" ]] || ! grep -q "127.0.0.1:${PORT}" "$PUBLIC_HTML/.htaccess" 2>/dev/null; then
    cp "$ROOT/deploy/cpanel-public_html.htaccess" "$PUBLIC_HTML/.htaccess"
    if [[ "${EUID:-$(id -u)}" -eq 0 ]]; then
      chown "$APP_USER:$APP_USER" "$PUBLIC_HTML/.htaccess"
    fi
    echo "    .htaccess instalado em $PUBLIC_HTML"
  else
    echo "    .htaccess já configurado"
  fi
fi

step "verificar"
sleep 1
HTTP_CODE="$(curl -s -o /dev/null -w '%{http_code}' "http://127.0.0.1:${PORT}/" || echo "000")"
if [[ "$HTTP_CODE" == "200" ]]; then
  echo "OK — LeadB2B rodando (HTTP $HTTP_CODE)"
  echo "Log: $LOG"
  echo "Site: https://leadb2b.org"
else
  echo "ERRO — HTTP $HTTP_CODE (esperado 200)"
  echo "Últimas linhas do log:"
  tail -30 "$LOG" 2>/dev/null || true
  exit 1
fi
