#!/bin/bash

# Script de despliegue para cPanel
# Este script prepara el proyecto para ser subido a cPanel

echo "🚀 Preparando proyecto para cPanel..."
echo "================================"

# Crear directorio de despliegue
DEPLOY_DIR="deploy_cpanel"
if [ -d "$DEPLOY_DIR" ]; then
    rm -rf "$DEPLOY_DIR"
fi
mkdir -p "$DEPLOY_DIR"

# Copiar archivos necesarios
echo "📁 Copiando archivos..."
cp -r api "$DEPLOY_DIR/"
cp -r includes "$DEPLOY_DIR/"
cp -r config "$DEPLOY_DIR/"
cp -r examples "$DEPLOY_DIR/"
cp .htaccess "$DEPLOY_DIR/"
cp README.md "$DEPLOY_DIR/"
cp database_setup.sql "$DEPLOY_DIR/"

# Crear archivo de configuración para cPanel
echo "⚙️ Creando configuración para cPanel..."
cat > "$DEPLOY_DIR/config/database.php" << 'EOF'
<?php
// Configuración de la base de datos para cPanel
// IMPORTANTE: Cambiar estos valores en cPanel

// Configuración de la base de datos
define('DB_HOST', 'localhost');  // Cambiar si es necesario
define('DB_USER', 'tu_usuario_db');  // CAMBIAR
define('DB_PASS', 'tu_password_db');  // CAMBIAR
define('DB_NAME', 'logs_urls');  // CAMBIAR
define('DB_CHARSET', 'utf8mb4');

// Configuración de la API
define('API_VERSION', 'v1');
define('API_BASE_URL', '/api/' . API_VERSION);
?>
EOF

# Crear archivo .htaccess optimizado para cPanel
echo "🌐 Creando .htaccess optimizado..."
cat > "$DEPLOY_DIR/.htaccess" << 'EOF'
RewriteEngine On

# Redirigir todas las peticiones a la API
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/v1/(.*)$ api/index.php [QSA,L]

# Configuración de CORS
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header always set Access-Control-Allow-Headers "Content-Type, Authorization"

# Configuración de seguridad
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
Header always set X-XSS-Protection "1; mode=block"

# Configuración de caché para la API
<Files "api/index.php">
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</Files>
EOF

# Crear archivo de instalación
echo "📋 Creando archivo de instalación..."
cat > "$DEPLOY_DIR/INSTALAR.md" << 'EOF'
# 🚀 INSTALACIÓN EN CPANEL

## 📋 Pasos de Instalación

### 1. Crear Base de Datos
- Ve a cPanel > Bases de datos MySQL
- Crea una nueva base de datos llamada `logs_urls`
- Crea un usuario y asígnale permisos a la base de datos
- Anota: host, usuario, contraseña y nombre de la base de datos

### 2. Subir Archivos
- Sube todos los archivos de esta carpeta a tu directorio web
- Puedes usar el Administrador de archivos de cPanel o FTP

### 3. Configurar Base de Datos
- Edita `config/database.php`
- Cambia los valores de DB_USER, DB_PASS y DB_NAME
- Si tu host no es localhost, cambia también DB_HOST

### 4. Crear Tabla
- Ejecuta el archivo `database_setup.sql` en phpMyAdmin
- O accede a `test.php` para que se cree automáticamente

### 5. Probar la API
- Accede a `test.php` para verificar la instalación
- Usa `examples/test_api.html` para probar la API

## 🌐 URLs de la API

- **Base URL:** `https://tudominio.com/api/v1/`
- **Documentación:** `https://tudominio.com/README.md`
- **Pruebas:** `https://tudominio.com/test.php`

## 🔧 Configuración Recomendada

- **PHP:** 7.4 o superior
- **MySQL:** 5.7 o superior
- **Extensiones PHP:** PDO, PDO_MySQL
- **mod_rewrite:** Habilitado (cPanel lo habilita por defecto)

## 📞 Soporte

Si tienes problemas:
1. Verifica los logs de error en cPanel
2. Confirma que la base de datos esté configurada correctamente
3. Verifica que mod_rewrite esté habilitado
EOF

# Crear archivo de prueba para cPanel
echo "🧪 Creando archivo de prueba para cPanel..."
cat > "$DEPLOY_DIR/test_cpanel.php" << 'EOF'
<?php
// Archivo de prueba específico para cPanel
echo "<h1>API Logs URLs - Prueba en cPanel</h1>";

// Verificar PHP
echo "<h2>Verificación de PHP</h2>";
echo "<p>Versión de PHP: " . phpversion() . "</p>";
echo "<p>Extensiones PDO: " . (extension_loaded('pdo') ? '✅ Habilitada' : '❌ No habilitada') . "</p>";
echo "<p>Extensiones PDO MySQL: " . (extension_loaded('pdo_mysql') ? '✅ Habilitada' : '❌ No habilitada') . "</p>";

// Verificar configuración
echo "<h2>Verificación de Configuración</h2>";
if (file_exists('config/database.php')) {
    echo "<p>✅ Archivo de configuración encontrado</p>";
    include_once 'config/database.php';
    echo "<p>Host: " . DB_HOST . "</p>";
    echo "<p>Usuario: " . DB_USER . "</p>";
    echo "<p>Base de datos: " . DB_NAME . "</p>";
} else {
    echo "<p>❌ Archivo de configuración no encontrado</p>";
}

// Verificar archivos principales
echo "<h2>Verificación de Archivos</h2>";
$files = ['api/index.php', 'includes/Database.php', 'includes/LogsUrlsModel.php'];
foreach ($files as $file) {
    echo "<p>" . (file_exists($file) ? '✅' : '❌') . " $file</p>";
}

echo "<h2>Próximos Pasos</h2>";
echo "<ol>";
echo "<li>Configura la base de datos en <code>config/database.php</code></li>";
echo "<li>Ejecuta <code>test.php</code> para probar la API</li>";
echo "<li>Usa <code>examples/test_api.html</code> para probar los endpoints</li>";
echo "</ol>";
?>
EOF

# Crear archivo ZIP para descarga
echo "📦 Creando archivo ZIP..."
cd "$DEPLOY_DIR"
zip -r ../api-logs-cpanel.zip .
cd ..

echo ""
echo "🎉 ¡Despliegue preparado exitosamente!"
echo ""
echo "📁 Archivos listos en: $DEPLOY_DIR/"
echo "📦 Archivo ZIP creado: api-logs-cpanel.zip"
echo ""
echo "📋 Próximos pasos:"
echo "1. Sube los archivos de $DEPLOY_DIR/ a tu cPanel"
echo "2. Configura la base de datos en config/database.php"
echo "3. Ejecuta test_cpanel.php para verificar la instalación"
echo "4. Usa la API en https://tudominio.com/api/v1/"
