<?php
session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
date_default_timezone_set('Atlantic/Canary');



// Conexión a la base de datos
$conexion = new mysqli("localhost", "todo2025", "0x0sidewinder", "todo2025");
if ($conexion->connect_error) {
    die("Error de conexión: " . $conexion->connect_error);
}

// Crear copia de la base de datos
if (isset($_GET['accion']) && $_GET['accion'] === 'db') {
    $fecha = date("Y-m-d-H-i-s");
    $sqlFile = "backups/{$fecha}.sql";
    exec("\"C:\\xampp\\mysql\\bin\\mysqldump.exe\" -u todo -ptodo todo > $sqlFile");
    header("Location: backup.php");
    exit;
}

// Crear copia de la carpeta uploads
if (isset($_GET['accion']) && $_GET['accion'] === 'files') {
    $fecha = date("Y-m-d-H-i-s");
    $zipFile = "backups/{$fecha}.zip";
    $zip = new ZipArchive();
    if ($zip->open($zipFile, ZipArchive::CREATE)) {
        $dir = new RecursiveDirectoryIterator('uploads');
        $files = new RecursiveIteratorIterator($dir);
        foreach ($files as $file) {
            if (!$file->isDir()) {
                $filePath = $file->getRealPath();
                $relativePath = substr($filePath, strlen('uploads') + 1);
                $zip->addFile($filePath, $relativePath);
            }
        }
        $zip->close();
    }
    header("Location: backup.php");
    exit;
}

// Eliminar backups
if (isset($_GET['eliminar'])) {
    $fecha = $_GET['eliminar'];
    @unlink($fecha);
    header("Location: backup.php");
    exit;
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Gestión de Copias de Seguridad</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
</head>
<body>
<div class="container px-5 py-4">
    <h2 class="mb-4">📦 Copias de Seguridad</h2>

    <div class="mb-3 d-flex gap-2">
        <a href="?accion=db" class="btn btn-primary">📄 Copia de Base de Datos</a>
        <a href="?accion=files" class="btn btn-secondary">🗂️ Copia de Carpeta /uploads</a>
        <a href="restore.php" class="btn btn-warning">🔄 Restaurar</a>
        <a href="index.php" class="btn btn-outline-secondary flex-fill me-2">❌ Volver al inicio</a>
    </div>

    <h4>Historial</h4>
    <table class="table table-bordered">
        <thead>
            <tr>
                <th>Base de datos/Archivos</th>
                <th>Tamaño</th>
                <th>Fecha</th>
                <th>Acciones</th>
            </tr>
        </thead>
        <tbody>
            <?php
            foreach (glob("backups/*.*") as $sqlFile) {
                $fecha = basename($sqlFile);
                echo "<tr>
                    <td><a href='$sqlFile'>".basename($sqlFile)."</a></td>
                    <td>".round(filesize($sqlFile)/1024/1024, 2)." MB</td>

                    <td>".substr($fecha, 0, 10)."</td>
                    <td><a href='?eliminar=$sqlFile' class='btn btn-danger btn-sm'>🗑️</a></td>
                </tr>";
            }
            ?>
        </tbody>
    </table>
</div>
</body>
</html>
