#!/bin/bash

# Script para testar o frontend-generator localmente
echo "🚀 Script de Teste Local do Frontend Generator"
echo "=============================================="
echo "📍 Execute este script NO DIRETÓRIO do frontend-generator"
echo "📁 Depois use o gerador instalado NO DIRETÓRIO do seu projeto"
echo ""

# Build do projeto
echo "📦 Executando build..."
npm run build
if [ $? -ne 0 ]; then
    echo "❌ Erro no build!"
    exit 1
fi
echo "✅ Build concluído com sucesso!"
echo ""

# Empacota o projeto
echo "📦 Gerando pacote local..."
npm pack
if [ $? -ne 0 ]; then
    echo "❌ Erro ao gerar pacote!"
    exit 1
fi
echo ✅ Pacote gerado com sucesso!
echo ""

# Verifica se o arquivo .tgz existe
PACKAGE_FILE="seniorsistemas-frontend-generator-23.19.2.tgz"

if [ ! -f "$PACKAGE_FILE" ]; then
    echo "❌ Arquivo $PACKAGE_FILE não encontrado após npm pack!"
    exit 1
fi

echo "✅ Pacote local encontrado: $PACKAGE_FILE"
echo ""

# Opções de teste
echo "Escolha como testar o gerador:"
echo "1) Instalar globalmente"
echo "2) Instalar em um projeto de teste"
echo "3) Testar diretamente com npx"
echo "4) Criar link simbólico global"
echo ""

read -p "Opção (1-4): " option

case $option in
    1)
        echo "🗑️  Desinstalando versão anterior (se existir)..."
        npm uninstall -g @seniorsistemas/frontend-generator 2>/dev/null || true
        echo ""
        echo "📦 Instalando globalmente..."
        npm install -g "$PACKAGE_FILE"
        echo ""
        echo "✅ Instalado! Use: frontend-generator"
        echo "Versão instalada:"
        frontend-generator --version
        echo ""
        echo "Para desinstalar: npm uninstall -g @seniorsistemas/frontend-generator"
        ;;
    2)
        echo "📁 Criando projeto de teste..."
        TEST_DIR="test-frontend-generator"
        mkdir -p "$TEST_DIR"
        cd "$TEST_DIR"
        npm init -y
        npm install "../$PACKAGE_FILE"
        echo "✅ Instalado em ./$TEST_DIR"
        echo "Use: npx frontend-generator ou npx fg"
        ;;
    3)
        echo "🔥 Testando diretamente com npx..."
        npx "$PACKAGE_FILE" --help
        ;;
    4)
        echo "🗑️  Removendo link anterior (se existir)..."
        npm unlink -g @seniorsistemas/frontend-generator 2>/dev/null || true
        echo ""
        echo "🔗 Criando link simbólico..."
        npm link
        echo ""
        echo "✅ Link criado! Use: frontend-generator ou fg"
        echo "Versão linkada:"
        frontend-generator --version
        echo ""
        echo "Para remover: npm unlink -g @seniorsistemas/frontend-generator"
        ;;
    *)
        echo "❌ Opção inválida!"
        exit 1
        ;;
esac

echo ""
echo "🎉 Pronto para testar!"
echo ""
echo "📋 PRÓXIMOS PASSOS:"
echo "1. Vá para o diretório onde quer criar seu projeto:"
echo "   cd /caminho/para/seu/projeto"
echo ""
echo "2. Certifique-se que tem um arquivo .ed.json"
echo ""
echo "3. Execute o gerador:"
echo "   frontend-generator all"