#!/bin/bash
# ============================================================
# deploy.dev.sh — Script de deploy do OnSMS para o ambiente de DEV
# ============================================================
# Uso: bash deploy.dev.sh
#
# Diferenças em relação ao deploy.sh (produção):
#   - Não roda "npm run build" (o dev usa tsx em modo watch via "npm run dev")
#   - Não toca no ecosystem.config.cjs (que é exclusivo do processo PM2 "onsms")
#   - Reinicia o PM2 pelo NOME "app-dev", nunca pelo arquivo de ecosystem,
#     para não arriscar afetar o processo de produção
#
# Pré-requisitos:
#   - Pasta de dev é um clone SEPARADO do repositório de produção
#   - .env desta pasta aponta para o banco de DEV (remoto, servidor separado
#     do banco de produção) — nunca para a DATABASE_URL de produção
# ============================================================

set -e

PROD_DIR="/home/onsmscom/portal.onsms.com.br/portalonsms2"
if [ "$(pwd)" = "$PROD_DIR" ]; then
  echo "ERRO: deploy.dev.sh não deve ser executado em $PROD_DIR (produção). Abortando." >&2
  exit 1
fi

echo "==> [1/4] Atualizando código do repositório..."
git checkout -- package-lock.json 2>/dev/null || true
git pull origin main

echo "==> [2/4] Instalando dependências..."
rm -f package-lock.json
npm install --registry https://registry.npmjs.org/

echo "==> [3/4] Aplicando migrations no banco de DEV (db:push)..."
export $(grep -v '^#' .env | xargs) && npm run db:push

echo "==> [4/4] Reiniciando app-dev via PM2..."
# --update-env garante que mudanças no .env (ex.: novas chaves de IA) cheguem
# ao processo — sem isso, o PM2 mantém o snapshot de env do primeiro start.
export $(grep -v '^#' .env | xargs)
pm2 restart app-dev --update-env || pm2 start npm --name "app-dev" -- run dev
pm2 save

echo ""
echo "✔ Deploy de DEV concluído!"
echo "  Verifique os logs com: pm2 logs app-dev"
