#!/bin/bash

echo "=========================================="
echo "DEPLOY: Sistema de Proration"
echo "=========================================="
echo ""

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

cd /var/www/gestorstream

# 1. Atualizar código
echo "1. Atualizando código..."
git stash 2>/dev/null
git pull origin main

if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓${NC} Código atualizado"
else
    echo -e "${RED}❌${NC} Erro ao atualizar código"
    exit 1
fi
echo ""

# 2. Limpar cache
echo "2. Limpando cache..."
cd backend
php artisan config:clear
php artisan cache:clear
php artisan route:clear
echo -e "${GREEN}✓${NC} Cache limpo"
echo ""

# 3. Verificar rota
echo "3. Verificando rotas..."
ROUTE_EXISTS=$(php artisan route:list | grep -c "calculate-proration")

if [ "$ROUTE_EXISTS" -gt "0" ]; then
    echo -e "${GREEN}✓${NC} Rota /calculate-proration encontrada"
else
    echo -e "${RED}❌${NC} Rota /calculate-proration NÃO encontrada"
    exit 1
fi
echo ""

# 4. Teste rápido
echo "4. Testando endpoint..."
cd /var/www/gestorstream

# Obter token
TOKEN=$(cd backend && php artisan tinker --execute="echo \App\Models\User::first()->createToken('test')->plainTextToken;" 2>/dev/null)

if [ -n "$TOKEN" ]; then
    # Obter primeiro plano
    PLAN_ID=$(cd backend && php artisan tinker --execute="echo \App\Models\Plan::first()->id;" 2>/dev/null)
    
    if [ -n "$PLAN_ID" ]; then
        # Testar endpoint
        RESPONSE=$(curl -s -X POST https://gestor.jf.eng.br/api/v1/subscriptions/calculate-proration \
            -H "Authorization: Bearer $TOKEN" \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d "{\"plan_id\": $PLAN_ID}")
        
        if echo "$RESPONSE" | grep -q "type"; then
            echo -e "${GREEN}✓${NC} Endpoint funcionando"
            echo "   Resposta: $(echo $RESPONSE | head -c 100)..."
        else
            echo -e "${RED}❌${NC} Endpoint retornou erro"
            echo "   Resposta: $RESPONSE"
        fi
    else
        echo -e "${YELLOW}⚠${NC} Nenhum plano encontrado para teste"
    fi
else
    echo -e "${YELLOW}⚠${NC} Não foi possível gerar token de teste"
fi

echo ""
echo "=========================================="
echo "✅ DEPLOY COMPLETO!"
echo "=========================================="
echo ""
echo "Sistema de Proration implementado:"
echo ""
echo "📊 Funcionalidades:"
echo "  ✅ Cálculo proporcional para upgrades"
echo "  ✅ Geração de créditos para downgrades"
echo "  ✅ Aplicação automática de créditos"
echo "  ✅ Baseado em dias do mês (não 30 dias fixos)"
echo ""
echo "🔧 Endpoints disponíveis:"
echo "  POST /api/v1/subscriptions/calculate-proration"
echo "  POST /api/v1/subscriptions (modificado)"
echo ""
echo "📝 Próximos passos:"
echo "  1. Atualizar frontend para mostrar cálculo"
echo "  2. Testar upgrade/downgrade"
echo "  3. Verificar geração de créditos"
echo ""
echo "📖 Documentação: SISTEMA_PRORATION.md"
echo ""
