#!/usr/bin/env bash
# Script único de deploy (ESPECIFICACAO_TECNICA_1.0.md §10) — roda NO servidor
# de produção como um usuário com sudo (não como o usuário de sistema
# `vendedor-ia`, que não tem shell de login nem privilégio para reiniciar o
# serviço). Idempotente: pode rodar de novo a qualquer momento.
set -euo pipefail

APP_DIR="/opt/vendedor-ia-rei"
APP_USER="vendedor-ia"
SERVICE="vendedor-ia-api"

echo "==> Buscando código mais recente"
sudo -u "$APP_USER" -H bash -c "cd '$APP_DIR' && git fetch origin && git reset --hard origin/main"

echo "==> Instalando dependências e compilando (como $APP_USER, dono dos arquivos)"
sudo -u "$APP_USER" -H bash -c "cd '$APP_DIR' && npm ci && npm run build"

echo "==> Aplicando migrations pendentes"
sudo -u "$APP_USER" -H bash -c "cd '$APP_DIR' && npm run migrate"

echo "==> Reiniciando serviço"
sudo systemctl restart "$SERVICE"
sudo systemctl status "$SERVICE" --no-pager -l | head -n 15

echo "==> Verificando health check"
sleep 2
curl -fsS http://127.0.0.1:3001/health && echo
