<?php
/**
 * Script para eliminar definitivamente todos los webhooks excepto los principales
 * ATENCIÓN: Este script es más agresivo que el anterior y solo preserva los webhooks
 * específicamente indicados como esenciales.
 */

// Configuración
$modo_simulacion = false;  // true = simular eliminación, false = eliminar realmente
$crear_backups = true;     // Crear una copia de seguridad de los webhooks eliminados

// Banner
echo "====================================================\n";
echo "   LIMPIEZA DEFINITIVA DE WEBHOOKS\n";
echo "====================================================\n\n";

if ($modo_simulacion) {
    echo "⚠️ MODO SIMULACIÓN: No se eliminará ningún archivo ⚠️\n\n";
}

// Solo preservar estos webhooks
$preservar = [
    'webhook_pagopar.php',      // Webhook principal
    'webhook_pagopar_alt.php',  // Webhook alternativo
];

// Contadores
$total = 0;
$eliminados = 0;
$preservados = 0;
$backup_dir = '';

// Si está habilitado el backup, crear directorio
if ($crear_backups && !$modo_simulacion) {
    $timestamp = date('Ymd_His');
    $backup_dir = "backup_webhooks_$timestamp";
    
    if (!is_dir($backup_dir)) {
        mkdir($backup_dir);
        echo "✅ Directorio de backup creado: $backup_dir\n\n";
    }
}

// Buscar todos los archivos webhook_*.php
$webhooks = glob('webhook_*.php');
$total_webhooks = count($webhooks);

echo "Analizando $total_webhooks archivos webhook_*.php...\n\n";

// Procesar cada archivo
foreach ($webhooks as $webhook) {
    $total++;
    
    if (in_array($webhook, $preservar)) {
        echo "✅ PRESERVADO: $webhook - Archivo esencial\n\n";
        $preservados++;
    } else {
        if ($modo_simulacion) {
            echo "🗑️ SIMULAR ELIMINAR: $webhook\n\n";
            $eliminados++;
        } else {
            // Crear backup si está habilitado
            if ($crear_backups && !empty($backup_dir)) {
                copy($webhook, "$backup_dir/$webhook");
            }
            
            // Eliminar el archivo
            if (@unlink($webhook)) {
                echo "🗑️ ELIMINADO: $webhook\n";
                if ($crear_backups) {
                    echo "   (Backup creado en $backup_dir/$webhook)\n\n";
                }
                $eliminados++;
            } else {
                echo "❌ ERROR AL ELIMINAR: $webhook\n\n";
            }
        }
    }
}

// Resumen
echo "\n====================================================\n";
echo "RESUMEN DE LA OPERACIÓN\n";
echo "====================================================\n";
echo "Total de archivos webhook analizados: $total\n";
echo "Archivos preservados: $preservados\n";
echo "Archivos " . ($modo_simulacion ? "que se eliminarían" : "eliminados") . ": $eliminados\n";

if ($crear_backups && !$modo_simulacion && !empty($backup_dir)) {
    echo "Se ha creado un backup en el directorio: $backup_dir\n";
}

echo "\nArchivos esenciales preservados:\n";
foreach ($preservar as $archivo) {
    if (file_exists($archivo)) {
        echo "- $archivo\n";
    }
}

echo "\n¡Proceso completado!\n";