#!/bin/bash

echo "🚀 Ejecutando test completo del plugin Facturante..."
echo "=================================================="

# Verificar requisitos
echo "📋 Verificando requisitos del sistema..."

if ! command -v docker &> /dev/null; then
    echo "❌ Docker no está instalado. Instala Docker Desktop primero."
    exit 1
fi

if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose no está instalado. Instala Docker Compose primero."
    exit 1
fi

echo "✅ Docker y Docker Compose están instalados"

# Dar permisos de ejecución
chmod +x setup.sh

# Paso 1: Configurar entorno
echo ""
echo "🔧 Paso 1: Configurando entorno de desarrollo..."
./setup.sh

# Paso 2: Levantar servicios
echo ""
echo "🐳 Paso 2: Levantando servicios Docker..."
docker-compose up -d

# Esperar a que los servicios estén listos
echo "⏳ Esperando a que los servicios estén listos..."
sleep 45

# Paso 3: Verificar servicios
echo ""
echo "🔍 Paso 3: Verificando servicios..."

# Verificar WordPress
if curl -s http://localhost:8080 > /dev/null; then
    echo "✅ WordPress está funcionando"
else
    echo "❌ WordPress no está respondiendo"
    echo "📋 Logs de WordPress:"
    docker-compose logs wordpress --tail=20
    exit 1
fi

# Verificar phpMyAdmin
if curl -s http://localhost:8081 > /dev/null; then
    echo "✅ phpMyAdmin está funcionando"
else
    echo "❌ phpMyAdmin no está respondiendo"
fi

# Verificar MailHog
if curl -s http://localhost:8025 > /dev/null; then
    echo "✅ MailHog está funcionando"
else
    echo "❌ MailHog no está respondiendo"
fi

# Paso 4: Instalar WP-CLI
echo ""
echo "📦 Paso 4: Instalando WP-CLI..."
echo "⏳ Descargando WP-CLI..."
docker-compose exec wordpress bash -c "curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
docker-compose exec wordpress bash -c "chmod +x wp-cli.phar"
docker-compose exec wordpress bash -c "mv wp-cli.phar /usr/local/bin/wp"
docker-compose exec wordpress bash -c 'echo "#!/bin/bash" > /usr/local/bin/wp-cli'
docker-compose exec wordpress bash -c 'echo "php /usr/local/bin/wp \"\$@\"" >> /usr/local/bin/wp-cli'
docker-compose exec wordpress bash -c "chmod +x /usr/local/bin/wp-cli"
docker-compose exec wordpress bash -c 'echo "alias wp=\"php /usr/local/bin/wp\"" >> ~/.bashrc'

echo "✅ WP-CLI instalado correctamente"
echo "🔍 Verificando instalación..."
docker-compose exec wordpress wp --version

# Paso 5: Instalar WooCommerce
echo ""
echo "🛒 Paso 5: Instalando WooCommerce..."
docker-compose exec wordpress wp plugin install woocommerce --activate --allow-root
echo "✅ WooCommerce instalado y activado"

# Verificar si el plugin está activo
if docker-compose exec -T wordpress wp plugin is-active woo-facturante --allow-root 2>/dev/null; then
    echo "✅ Plugin Facturante está activo"
else
    echo "⚠️ Plugin Facturante NO está activo"
    echo "📋 Para activarlo:"
    echo "1. Ir a http://localhost:8080/wp-admin"
    echo "2. Ir a Plugins > Plugins instalados"
    echo "3. Activar 'Facturante'"
fi

# Paso 9: Mostrar información final
echo ""
echo "🎉 ¡Test completo finalizado!"
echo "=================================================="
echo ""
echo "📋 URLs importantes:"
echo "- WordPress: http://localhost:8080"
echo "- WordPress Admin: http://localhost:8080/wp-admin"
echo "- phpMyAdmin: http://localhost:8081"
echo "- MailHog: http://localhost:8025"
echo ""
echo "🔧 Próximos pasos para testing:"
echo "1. Acceder a WordPress Admin"
echo "2. Activar el plugin Facturante si no está activo"
echo "3. Ir a WooCommerce > Ajustes > Configuración Facturante"
echo "4. Configurar las credenciales de Facturante"
echo "5. Crear un pedido de prueba"
echo "6. Probar la funcionalidad de facturación"
echo ""
echo "🐛 Para debugging:"
echo "- Ver logs en tiempo real: docker-compose logs -f wordpress"
echo "- Ver logs específicos: tail -f wp-content/debug.log"
echo ""
echo "📊 Estado de los servicios:"
docker-compose ps

echo ""
echo "🔍 Comandos útiles:"
echo "- Reiniciar todo: docker-compose restart"
echo "- Parar servicios: docker-compose down"
echo "- Ver logs: docker-compose logs -f"
echo "- Acceder al contenedor: docker-compose exec wordpress bash"
echo ""
echo "✅ ¡Entorno de desarrollo listo para testing!" 