#!/bin/bash
# Script completo para atualizar banco de dados na VPS
# Aplica schema completo e cria dados demo para testar
# Execute na VPS: bash deploy/atualizar-banco-vps-completo.sh

set -e

echo "=========================================="
echo "Atualizando Banco de Dados na VPS"
echo "=========================================="
echo ""

cd /var/www/maktubia-backend

# 1. Aplicar schema completo
echo "📋 Passo 1: Aplicando schema completo do sistema..."
echo ""
node -e "
const { applyPointsSchema } = require('./services/pointsSchema');
const logger = require('./utils/logger');

applyPointsSchema()
    .then(() => {
        logger.info('✅ Schema aplicado com sucesso!');
        process.exit(0);
    })
    .catch((error) => {
        logger.error('❌ Erro ao aplicar schema:', error);
        process.exit(1);
    });
"

if [ $? -ne 0 ]; then
    echo "❌ Erro ao aplicar schema!"
    exit 1
fi

echo ""
echo "✅ Schema aplicado com sucesso!"
echo ""

# 2. Criar dados demo
echo "📋 Passo 2: Criando dados demo para testar..."
echo ""

node -e "
const { createSampleData } = require('./create-sample-data-complete');
const logger = require('./utils/logger');

createSampleData()
    .then(() => {
        logger.info('✅ Dados demo criados com sucesso!');
        process.exit(0);
    })
    .catch((error) => {
        logger.error('❌ Erro ao criar dados demo:', error);
        process.exit(1);
    });
"

if [ $? -ne 0 ]; then
    echo "⚠️  Aviso: Erro ao criar dados demo (pode ser que já existam dados)"
    echo "   Continuando..."
fi

echo ""
echo "✅ Dados demo criados!"
echo ""

# 3. Criar dados demo estendidos (tabelas adicionais)
echo "📋 Passo 3: Criando dados demo estendidos (tabelas adicionais)..."
echo ""

node -e "
const { createExtendedSampleData } = require('./create-sample-data-extended');
const logger = require('./utils/logger');

createExtendedSampleData()
    .then(() => {
        logger.info('✅ Dados demo estendidos criados com sucesso!');
        process.exit(0);
    })
    .catch((error) => {
        logger.warn('⚠️  Erro ao criar dados demo estendidos:', error.message);
        process.exit(0); // Não falhar se der erro
    });
"

if [ $? -ne 0 ]; then
    echo "⚠️  Aviso: Erro ao criar dados demo estendidos"
    echo "   Continuando..."
fi

echo ""
echo "✅ Dados demo estendidos criados!"
echo ""

# 4. Verificar tabelas criadas
echo "📋 Passo 4: Verificando tabelas criadas..."
echo ""

sudo -u postgres psql -d maktubia_points << EOF
SELECT 
    tablename,
    (SELECT COUNT(*) FROM information_schema.columns WHERE table_name = tablename) as columns_count
FROM pg_tables 
WHERE schemaname = 'public' 
ORDER BY tablename;
EOF

echo ""
echo "=========================================="
echo "✅ Atualização do banco de dados concluída!"
echo "=========================================="
echo ""
echo "📊 Resumo:"
echo "   ✅ Schema completo aplicado"
echo "   ✅ Dados demo criados"
echo "   ✅ Banco de dados atualizado e pronto para testar"
echo ""
echo "🔄 Reiniciando aplicação..."
pm2 restart maktubia-backend || echo "⚠️  PM2 não encontrado ou aplicação não está rodando"
echo ""
echo "✅ Concluído!"

