#!/bin/bash

##############################################
# Instalador de Cron Job para Alertas de Vencimento
# 
# Este script configura o cron para executar
# alertas automáticos às 09:00 (horário de Brasília)
##############################################

set -e

echo "=========================================="
echo "  INSTALADOR CRON - ALERTAS PARCELAS"
echo "=========================================="
echo ""

# Cores
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# Detectar diretório do projeto
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
NODE_SCRIPT="$PROJECT_DIR/scripts/enviar-alertas-parcelas.js"

echo "📁 Diretório do projeto: $PROJECT_DIR"
echo "📜 Script de alertas: $NODE_SCRIPT"
echo ""

# Verificar se o script existe
if [ ! -f "$NODE_SCRIPT" ]; then
    echo -e "${RED}❌ Script de alertas não encontrado!${NC}"
    echo "   Caminho esperado: $NODE_SCRIPT"
    exit 1
fi

# Tornar o script executável
chmod +x "$NODE_SCRIPT"
echo -e "${GREEN}✅ Permissões de execução configuradas${NC}"

# Detectar path do Node.js
NODE_PATH=$(which node)
if [ -z "$NODE_PATH" ]; then
    echo -e "${RED}❌ Node.js não encontrado!${NC}"
    echo "   Instale o Node.js primeiro: https://nodejs.org"
    exit 1
fi

echo -e "${GREEN}✅ Node.js encontrado: $NODE_PATH${NC}"

# Criar linha do cron
# Executa todos os dias às 09:00 (horário de Brasília - UTC-3)
# Nota: Cron usa UTC, então 09:00 BRT = 12:00 UTC
CRON_LINE="0 12 * * * TZ='America/Sao_Paulo' $NODE_PATH $NODE_SCRIPT >> $PROJECT_DIR/logs/alertas-cron.log 2>&1"

echo ""
echo "🕐 Configuração do cron:"
echo "   - Horário: 09:00 (Brasília)"
echo "   - Frequência: Diariamente"
echo "   - Timezone: America/Sao_Paulo"
echo ""

# Criar diretório de logs
mkdir -p "$PROJECT_DIR/logs"
echo -e "${GREEN}✅ Diretório de logs criado${NC}"

# Verificar se já existe o cron
EXISTING_CRON=$(crontab -l 2>/dev/null | grep -F "$NODE_SCRIPT" || true)

if [ -n "$EXISTING_CRON" ]; then
    echo -e "${YELLOW}⚠️  Já existe um cron job configurado para este script${NC}"
    echo ""
    echo "Cron atual:"
    echo "   $EXISTING_CRON"
    echo ""
    read -p "Deseja substituir? (s/N): " -n 1 -r
    echo ""
    
    if [[ ! $REPLY =~ ^[Ss]$ ]]; then
        echo "❌ Instalação cancelada pelo usuário"
        exit 0
    fi
    
    # Remover linha antiga
    (crontab -l 2>/dev/null | grep -v -F "$NODE_SCRIPT") | crontab -
    echo -e "${GREEN}✅ Cron antigo removido${NC}"
fi

# Adicionar novo cron
(crontab -l 2>/dev/null; echo "$CRON_LINE") | crontab -

echo ""
echo -e "${GREEN}✅ Cron job instalado com sucesso!${NC}"
echo ""

# Verificar instalação
echo "📋 Cron jobs ativos:"
echo "────────────────────────────────────────"
crontab -l | grep -F "$NODE_SCRIPT" || echo "Nenhum cron encontrado"
echo "────────────────────────────────────────"
echo ""

# Teste manual
echo "🧪 Deseja executar um teste agora? (s/N): "
read -p "" -n 1 -r
echo ""

if [[ $REPLY =~ ^[Ss]$ ]]; then
    echo ""
    echo "🚀 Executando teste..."
    echo "────────────────────────────────────────"
    TZ='America/Sao_Paulo' $NODE_PATH $NODE_SCRIPT
    echo "────────────────────────────────────────"
    echo ""
fi

echo ""
echo "=========================================="
echo "  INSTALAÇÃO CONCLUÍDA! ✅"
echo "=========================================="
echo ""
echo "📝 Próximos passos:"
echo ""
echo "1. Configure as variáveis de ambiente em .env:"
echo "   - SUPABASE_URL"
echo "   - SUPABASE_SERVICE_KEY (ou SUPABASE_ANON_KEY)"
echo ""
echo "2. Configure no painel admin:"
echo "   - Evolution API (URL, Instance, API Key)"
echo "   - Mercado Pago (Access Token)"
echo "   - Mensagens de alerta personalizadas"
echo "   - Dias de antecedência para alertas"
echo ""
echo "3. Monitore os logs:"
echo "   tail -f $PROJECT_DIR/logs/alertas-cron.log"
echo ""
echo "4. Para testar manualmente:"
echo "   cd $PROJECT_DIR"
echo "   node scripts/enviar-alertas-parcelas.js"
echo ""
echo "5. Para desinstalar o cron:"
echo "   crontab -e  (e remova a linha do script)"
echo ""
echo "=========================================="
echo ""
