#!/bin/bash

# Script de despliegue para API Logs URLs
# Este script ayuda a configurar y verificar la instalación

echo "🚀 Desplegando API Logs URLs..."
echo "================================"

# Verificar si PHP está instalado
if ! command -v php &> /dev/null; then
    echo "❌ PHP no está instalado. Por favor instala PHP 7.4 o superior."
    exit 1
fi

echo "✅ PHP encontrado: $(php -v | head -n 1)"

# Verificar si MySQL está ejecutándose
if ! command -v mysql &> /dev/null; then
    echo "❌ MySQL no está instalado o no está en el PATH."
    echo "Por favor instala MySQL y asegúrate de que esté ejecutándose."
    exit 1
fi

echo "✅ MySQL encontrado: $(mysql --version)"

# Verificar extensión PDO
if ! php -m | grep -q "pdo"; then
    echo "❌ Extensión PDO no está habilitada en PHP."
    echo "Por favor habilita la extensión PDO en tu php.ini"
    exit 1
fi

echo "✅ Extensión PDO habilitada"

# Verificar extensión PDO MySQL
if ! php -m | grep -q "pdo_mysql"; then
    echo "❌ Extensión PDO MySQL no está habilitada en PHP."
    echo "Por favor habilita la extensión pdo_mysql en tu php.ini"
    exit 1
fi

echo "✅ Extensión PDO MySQL habilitada"

# Crear base de datos si no existe
echo "🗄️ Configurando base de datos..."

# Intentar conectar a MySQL (sin contraseña)
if mysql -u root -e "USE logs_urls;" 2>/dev/null; then
    echo "✅ Base de datos 'logs_urls' ya existe"
else
    echo "📝 Creando base de datos 'logs_urls'..."
    if mysql -u root -e "CREATE DATABASE logs_urls CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"; then
        echo "✅ Base de datos 'logs_urls' creada exitosamente"
    else
        echo "❌ Error al crear la base de datos. Verifica que MySQL esté ejecutándose y que el usuario 'root' tenga permisos."
        exit 1
    fi
fi

# Verificar permisos de archivos
echo "📁 Verificando permisos de archivos..."

# Hacer ejecutable el script de despliegue
chmod +x deploy.sh

# Verificar que los directorios existan
if [ ! -d "api" ]; then
    echo "❌ Directorio 'api' no encontrado"
    exit 1
fi

if [ ! -d "includes" ]; then
    echo "❌ Directorio 'includes' no encontrado"
    exit 1
fi

if [ ! -d "config" ]; then
    echo "❌ Directorio 'config' no encontrado"
    exit 1
fi

echo "✅ Estructura de directorios correcta"

# Verificar archivos principales
if [ ! -f "api/index.php" ]; then
    echo "❌ Archivo 'api/index.php' no encontrado"
    exit 1
fi

if [ ! -f "includes/Database.php" ]; then
    echo "❌ Archivo 'includes/Database.php' no encontrado"
    exit 1
fi

if [ ! -f "includes/LogsUrlsModel.php" ]; then
    echo "❌ Archivo 'includes/LogsUrlsModel.php' no encontrado"
    exit 1
fi

if [ ! -f "config/database.php" ]; then
    echo "❌ Archivo 'config/database.php' no encontrado"
    exit 1
fi

echo "✅ Archivos principales encontrados"

# Verificar configuración de Apache
echo "🌐 Verificando configuración del servidor web..."

if [ -f "/etc/apache2/apache2.conf" ] || [ -f "/etc/httpd/httpd.conf" ]; then
    echo "✅ Apache detectado"
    
    # Verificar si mod_rewrite está habilitado
    if apache2ctl -M 2>/dev/null | grep -q "rewrite_module"; then
        echo "✅ Módulo mod_rewrite habilitado"
    else
        echo "⚠️  Módulo mod_rewrite no está habilitado"
        echo "   Ejecuta: sudo a2enmod rewrite && sudo systemctl restart apache2"
    fi
else
    echo "ℹ️  Apache no detectado. Si usas otro servidor web, verifica la configuración manualmente."
fi

echo ""
echo "🎉 Despliegue completado!"
echo ""
echo "📋 Próximos pasos:"
echo "1. Asegúrate de que tu servidor web esté ejecutándose"
echo "2. Accede a http://localhost/test.php para verificar la instalación"
echo "3. Usa http://localhost/examples/test_api.html para probar la API"
echo "4. La API estará disponible en http://localhost/api/v1/"
echo ""
echo "📚 Consulta el README.md para más información sobre el uso de la API"
echo ""
echo "🔧 Si encuentras problemas:"
echo "- Verifica que MySQL esté ejecutándose"
echo "- Confirma que las credenciales en config/database.php sean correctas"
echo "- Revisa los logs de error del servidor web"
