<?php
/**
 * Script de limpieza adicional
 * Este script elimina más archivos de prueba que puedan haber quedado
 */

// Configurar opciones
$hacer_backup = true;            // Crear copia de seguridad antes de eliminar
$backup_dir = 'backup_pagopar_adicional_' . date('Ymd_His');
$verbose = true;                  // Mostrar mensajes detallados

// Archivos a conservar (estos son esenciales)
$archivos_importantes = [
    'pagopar_config.php',
    'webhook_pagopar.php',
    'resultado_pago_pagopar.php',
    'iniciar_pago_pagopar.php',
    'FORMATO_PASO3_CORRECTO.md',
    'limpiar_sesion.php',        // Este parece ser necesario para la operación del sitio
    'limpiar_archivos_prueba.php' // Conservar este script por si necesitamos usarlo de nuevo
];

// Patrones de archivos a eliminar
$patrones_eliminar = [
    'crear_pedido_*.php',
    'debug_*.php',
    'test_*.php',
    'consultar_*.php',
    'forzar_*.php',
    'webhook_test*.php',
    'webhook_validacion*.php',
    'webhook_copia*.php',
    'simulacion_*.php',
    'probar_*.php'
];

// Función para mostrar mensajes
function mostrar($mensaje) {
    global $verbose;
    if ($verbose) {
        echo $mensaje . "<br>";
        flush();
    }
}

// Función para hacer backup de un archivo
function hacer_backup($archivo, $backup_dir) {
    global $hacer_backup;
    
    if (!$hacer_backup) return true;
    
    $dir_destino = dirname($backup_dir . '/' . str_replace('c:\\xampp\\htdocs\\jkeas.com.py\\', '', $archivo));
    
    if (!file_exists($dir_destino)) {
        mkdir($dir_destino, 0777, true);
    }
    
    return copy($archivo, $backup_dir . '/' . str_replace('c:\\xampp\\htdocs\\jkeas.com.py\\', '', $archivo));
}

// Función para eliminar archivo
function eliminar_archivo($archivo) {
    if (file_exists($archivo)) {
        if (unlink($archivo)) {
            return true;
        } else {
            mostrar("⚠️ No se pudo eliminar: " . $archivo);
            return false;
        }
    }
    return false;
}

// Función para buscar archivos con comodines
function buscar_archivos($patron) {
    return glob($patron);
}

// Crear directorio de backup si es necesario
if ($hacer_backup) {
    if (!file_exists($backup_dir)) {
        mkdir($backup_dir, 0777, true);
    }
    mostrar("📦 Directorio de backup creado: " . $backup_dir);
}

// Inicio del HTML
echo '<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>🧹 Limpieza Adicional de Archivos</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body {
            font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #334155 0%, #1e293b 100%);
            color: #f8fafc;
            padding: 20px;
            line-height: 1.6;
        }
        .container {
            max-width: 900px;
            margin: 20px auto;
            background: #1e293b;
            padding: 30px;
            border-radius: 15px;
            box-shadow: 0 10px 25px rgba(0,0,0,0.2);
        }
        h1 {
            color: #94a3b8;
            text-align: center;
            margin-bottom: 30px;
            font-size: 28px;
        }
        .progress {
            margin: 20px 0;
            height: 30px;
            background: #334155;
            border-radius: 15px;
            overflow: hidden;
        }
        .progress-bar {
            height: 100%;
            background: linear-gradient(90deg, #4f46e5 0%, #6366f1 100%);
            width: 0%;
            transition: width 0.5s;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
        }
        .panel {
            background: #334155;
            border-radius: 8px;
            margin: 20px 0;
            overflow: hidden;
        }
        .panel-header {
            background: #475569;
            padding: 15px;
            color: #f1f5f9;
            font-weight: bold;
        }
        .panel-body {
            padding: 15px;
            max-height: 300px;
            overflow: auto;
        }
        .file-list {
            list-style: none;
        }
        .file-item {
            padding: 8px 0;
            border-bottom: 1px solid #475569;
            display: flex;
            align-items: center;
        }
        .file-item:last-child {
            border-bottom: none;
        }
        .file-item.removed {
            color: #94a3b8;
            text-decoration: line-through;
        }
        .file-item::before {
            content: "🗑️";
            margin-right: 10px;
        }
        .file-item.important::before {
            content: "🔒";
            margin-right: 10px;
        }
        .file-item.backup::before {
            content: "💾";
            margin-right: 10px;
        }
        .btn {
            display: inline-block;
            background: #4f46e5;
            color: white;
            padding: 10px 20px;
            border-radius: 8px;
            text-decoration: none;
            margin-top: 20px;
            border: none;
            cursor: pointer;
            font-size: 16px;
            font-weight: 500;
            transition: all 0.2s ease;
        }
        .btn:hover {
            background: #4338ca;
            transform: translateY(-2px);
        }
        .summary {
            background: #0f172a;
            padding: 20px;
            border-radius: 8px;
            margin-top: 30px;
            text-align: center;
        }
        .stat {
            display: inline-block;
            background: #334155;
            padding: 15px 20px;
            border-radius: 8px;
            margin: 10px;
            text-align: center;
            min-width: 180px;
        }
        .stat-value {
            font-size: 24px;
            font-weight: bold;
            color: #f8fafc;
            margin-bottom: 5px;
        }
        .stat-label {
            color: #94a3b8;
            font-size: 14px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>🧹 Limpieza Adicional de Archivos de Prueba</h1>
        
        <div class="progress">
            <div class="progress-bar" id="progress-bar" style="width: 0%">0%</div>
        </div>
        
        <div class="panel">
            <div class="panel-header">🗂️ Archivos adicionales a procesar</div>
            <div class="panel-body">
                <ul class="file-list">';

// Contar archivos totales para la barra de progreso
$total_archivos = 0;
$archivos_encontrados = [];

// Buscar archivos a eliminar
foreach ($patrones_eliminar as $patron) {
    $encontrados = buscar_archivos($patron);
    foreach ($encontrados as $archivo) {
        if (!in_array(basename($archivo), $archivos_importantes)) {
            $archivos_encontrados[] = $archivo;
        }
    }
}

$total_archivos = count($archivos_encontrados);

// Mostrar archivos a procesar
foreach ($archivos_encontrados as $archivo) {
    if (in_array(basename($archivo), $archivos_importantes)) {
        echo '<li class="file-item important">' . $archivo . ' (protegido)</li>';
    } else {
        echo '<li class="file-item">' . $archivo . '</li>';
    }
}

echo '      </ul>
            </div>
        </div>';

// Procesar y eliminar archivos
echo '<div class="panel">
            <div class="panel-header">🔄 Procesando archivos</div>
            <div class="panel-body">
                <ul class="file-list" id="progress-list">';

$archivos_eliminados = 0;
$archivos_respaldados = 0;
$contador = 0;

// Procesar cada archivo
foreach ($archivos_encontrados as $archivo) {
    $contador++;
    $porcentaje = round(($contador / $total_archivos) * 100);
    
    echo '<script>document.getElementById("progress-bar").style.width = "' . $porcentaje . '%";';
    echo 'document.getElementById("progress-bar").innerText = "' . $porcentaje . '%";</script>';
    
    // Si es archivo importante, saltarlo
    if (in_array(basename($archivo), $archivos_importantes)) {
        echo '<li class="file-item important">' . $archivo . ' (conservado)</li>';
        continue;
    }
    
    // Hacer backup si está habilitado
    if ($hacer_backup && file_exists($archivo)) {
        if (hacer_backup($archivo, $backup_dir)) {
            echo '<li class="file-item backup">' . $archivo . ' (respaldado)</li>';
            $archivos_respaldados++;
        }
    }
    
    // Eliminar archivo
    if (eliminar_archivo($archivo)) {
        echo '<li class="file-item removed">' . $archivo . ' (eliminado)</li>';
        $archivos_eliminados++;
    }
    
    flush();
}

echo '      </ul>
            </div>
        </div>
        
        <div class="summary">
            <h2 style="margin-bottom: 20px; color: #94a3b8;">Resumen de la limpieza adicional</h2>
            
            <div class="stat">
                <div class="stat-value">' . $total_archivos . '</div>
                <div class="stat-label">Archivos procesados</div>
            </div>
            
            <div class="stat">
                <div class="stat-value">' . $archivos_eliminados . '</div>
                <div class="stat-label">Archivos eliminados</div>
            </div>';

if ($hacer_backup) {
    echo '    <div class="stat">
                <div class="stat-value">' . $archivos_respaldados . '</div>
                <div class="stat-label">Archivos respaldados</div>
            </div>';
}

echo '    </div>
        
        <div style="text-align: center; margin-top: 30px;">
            <a href="https://jkeas.com.py/carrito.php" class="btn">🛒 Ir al Carrito</a>
            <a href="https://jkeas.com.py/index.php" class="btn">🏠 Volver al Inicio</a>
        </div>
        
    </div>
    
    <script>
        // Actualizar la barra de progreso al 100%
        document.getElementById("progress-bar").style.width = "100%";
        document.getElementById("progress-bar").innerText = "100%";
    </script>
</body>
</html>';