<?php
session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
include 'conexion.php';

// Solo admins pueden acceder
if (!isset($_SESSION['usuario']) || $_SESSION['rol'] !== 'admin') {
    header("Location: index.php");
    exit;
}

// Eliminar usuario
if (isset($_GET['eliminar'])) {
    $id = intval($_GET['eliminar']);
    $conexion->query("DELETE FROM usuarios WHERE id = $id");
    header("Location: gestionar_usuarios.php");
    exit;
}

// Eliminar archivo de backup
if (isset($_GET['borrar'])) {
    $archivo = basename($_GET['borrar']);
    $ruta = __DIR__ . '/backups/' . $archivo;
    if (is_file($ruta)) {
        unlink($ruta);
    }
    header("Location: gestionar_usuarios.php");
    exit;
}

// Obtener usuarios
$usuarios = $conexion->query("SELECT id, usuario, rol FROM usuarios");

// Obtener backups
$carpetaBackups = __DIR__ . '/backups/';
$archivos = [];

if (is_dir($carpetaBackups)) {
    foreach (glob($carpetaBackups . '*.*') as $archivo) {
        $archivos[] = [
            'nombre' => basename($archivo),
            'ruta' => $archivo,
            'fecha' => filemtime($archivo),
            'tamano' => filesize($archivo)
        ];
    }
    usort($archivos, fn($a, $b) => $b['fecha'] <=> $a['fecha']);
}


// Estadísticas de documentos en uploads
$carpetaUploads = __DIR__ . '/uploads/';
$estadisticas = [];

if (is_dir($carpetaUploads)) {
    foreach (glob($carpetaUploads . '*.*') as $archivo) {
        $extension = strtolower(pathinfo($archivo, PATHINFO_EXTENSION));
        $fecha = filemtime($archivo);
        $tamano = filesize($archivo);

        if (!isset($estadisticas[$extension])) {
            $estadisticas[$extension] = [
                'cantidad' => 0,
                'ultima_fecha' => $fecha,
                'tamano_total' => 0
            ];
        }

        $estadisticas[$extension]['cantidad']++;
        $estadisticas[$extension]['tamano_total'] += $tamano;

        if ($fecha > $estadisticas[$extension]['ultima_fecha']) {
            $estadisticas[$extension]['ultima_fecha'] = $fecha;
        }
    }
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Gestión de Usuarios</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js"></script>
</head>
<body class="bg-light">
<div class="container py-5">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2>👥 Gestión de Usuarios</h2>
        <div>
            <span class="badge bg-secondary d-inline-flex align-items-center" style="font-size: 1.0rem; font-weight: normal;">
                🙍‍♂️ Usuario: <?= htmlspecialchars($_SESSION['usuario']) ?>
            </span>
        </div>
    </div>

    <?php if (isset($_GET['reset']) && $_GET['reset'] === 'ok'): ?>
        <div class="alert alert-warning">✅ Sistema reseteado correctamente.</div>
    <?php endif; ?>

    <table class="table table-bordered table-hover bg-white">
        <thead class="table-light">
            <tr>
                <th>ID</th>
                <th>Usuario</th>
                <th>Rol</th>
                <th>Acciones</th>
            </tr>
        </thead>
        <tbody>
            <?php while ($u = $usuarios->fetch_assoc()): ?>
                <tr>
                    <td><?= $u['id'] ?></td>
                    <td><?= htmlspecialchars($u['usuario']) ?></td>
                    <td><?= $u['rol'] ?></td>
                    <td>
                        <a href="editar_usuario.php?id=<?= $u['id'] ?>" class="btn btn-warning btn-sm">✏️ Editar</a>
                        <?php if (strcasecmp($u['usuario'], 'admin') !== 0): ?>
                            <a href="?eliminar=<?= $u['id'] ?>" class="btn btn-danger btn-sm" onclick="return confirm('¿Eliminar este usuario?')">🗑️ Eliminar</a>
                        <?php endif; ?>
                    </td>
                </tr>
            <?php endwhile; ?>
        </tbody>
    </table>

    <div class="d-flex justify-content-between flex-wrap mt-4">
        <a href="registro.php" class="btn btn-success flex-fill me-2">➕ Crear nuevo usuario</a>
        <a href="resetear_sistema.php" class="btn btn-danger flex-fill me-2"
        onclick="return confirm('⚠️ Esto eliminará todos los datos del sistema. ¿Continuar?')">
        🔄 Resetear Sistema
        </a>
        <a href="backup_db.php" class="btn btn-outline-primary flex-fill me-2">🗃️ Copia de Base de Datos</a>
        <a href="backup.php" class="btn btn-outline-primary flex-fill me-2">🗃️ Gestón de Copias</a>
        <a href="index.php" class="btn btn-outline-secondary flex-fill me-2">❌ Volver al inicio</a>
        <a href="logout.php" class="btn btn-outline-danger flex-fill">❌ Cerrar sesión</a>
    </div>

    <?php if (!empty($archivos)): ?>
        <div class="d-flex justify-content-between align-items-center mt-5 mb-3">
            <h4 class="mb-0">📦 Archivos de Copia de Seguridad</h4>
            <a href="backup_delete.php" class="btn btn-outline-danger btn-sm"
            onclick="return confirm('⚠️ Esto eliminará TODOS los archivos de respaldo. ¿Estás seguro?')">
            🧨 Borrar todos los backups
            </a>
        </div>

        <table class="table table-bordered table-hover bg-white mt-3">
            <thead class="table-light">
                <tr>
                    <th>Archivo</th>
                    <th class="text-center">Fecha</th>
                    <th class="text-center">Tamaño</th>
                    <th>Acciones</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($archivos as $a): ?>
                    <tr>
                        <td><?= htmlspecialchars($a['nombre']) ?></td>
                        <td class="text-center"><?= date('Y-m-d H:i:s', $a['fecha']) ?></td>
                        <td class="text-center">
                            <?= $a['tamano'] >= 1048576 
                                ? round($a['tamano'] / 1048576, 2) . ' MB' 
                                : round($a['tamano'] / 1024, 2) . ' KB' ?>
                        </td>
                        <td>
                            <div class="d-flex justify-content-cente flex-wrap gap-2">
                                <a href="backups/<?= urlencode($a['nombre']) ?>" class="btn btn-outline-primary btn-sm" download>⬇️ Descargar</a>
                                <a href="?borrar=<?= urlencode($a['nombre']) ?>" class="btn btn-outline-danger btn-sm" onclick="return confirm('¿Eliminar este archivo?')">🗑️ Eliminar</a>
                                <?php //if (str_ends_with($a['nombre'], '.log')): ?>
                                    <a href="backups/<?= urlencode($a['nombre']) ?>" class="btn btn-outline-secondary btn-sm" target="_blank">📖 Abrir/Descargar</a>
                                <?php //endif; ?>
                            </div>
                        </td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    <?php else: ?>
        <p class="mt-4 text-muted">No hay copias de seguridad disponibles.</p>
    <?php endif; ?>

    <?php if (!empty($estadisticas)): ?>
        <div class="d-flex justify-content-between align-items-center mt-5 mb-3">
            <h4 class="mb-0">📁 Documentos en la carpeta 'uploads'</h4>
            <a href="borrar_uploads.php" class="btn btn-outline-danger btn-sm"
            onclick="return confirm('⚠️ Esto eliminará TODOS los documentos en la carpeta uploads. ¿Estás seguro?')">🧨 Borrar todos los documentos</a>
        </div>
        <table class="table table-bordered table-hover bg-white mt-3">
            <thead class="table-light">
                <tr>
                    <th class="text-center">Tipo</th>
                    <th class="text-center">Cantidad</th>
                    <th class="text-center">Tamaño total</th>
                    <th class="text-center">Última subida</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($estadisticas as $tipo => $info): ?>
                    <tr>
                        <td class="text-center"><?= strtoupper($tipo) ?></td>
                        <td class="text-center"><?= $info['cantidad'] ?></td>
                        <td class="text-center">
                            <?= $info['tamano_total'] >= 1048576 
                            ? round($info['tamano_total'] / 1048576, 2) . ' MB' 
                            : round($info['tamano_total'] / 1024, 2) . ' KB' ?>
                        </td>
                        <td class="text-center"><?= date('Y-m-d H:i:s', $info['ultima_fecha']) ?></td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    <?php else: ?>
        <p class="mt-4 text-muted">No hay documentos en la carpeta 'uploads'.</p>
    <?php endif; ?>
</div>
</body>
</html>
