<?php
session_start();
header('Content-Type: application/json');

// Verificar autenticación y permisos
if (!isset($_SESSION['user_id'])) {
    http_response_code(403);
    echo json_encode(['success' => false, 'error' => 'No autorizado']);
    exit;
}

$rol = strtolower($_SESSION['rol'] ?? '');
if (!in_array($rol, ['administrador', 'admin'])) {
    http_response_code(403);
    echo json_encode(['success' => false, 'error' => 'No tienes permisos para esta acción']);
    exit;
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['success' => false, 'error' => 'Método no permitido']);
    exit;
}

try {
    $log_file = __DIR__ . '/../logs/app.log';

    if (!file_exists($log_file)) {
        echo json_encode(['success' => false, 'error' => 'Archivo de log no encontrado']);
        exit;
    }

    // Crear respaldo antes de limpiar
    $backup_file = __DIR__ . '/../logs/app_backup_' . date('Y-m-d_H-i-s') . '.log';
    if (copy($log_file, $backup_file)) {
        // Limpiar el archivo de log
        file_put_contents($log_file, '');

        // Registrar la acción
        $usuario = $_SESSION['usuario'] ?? 'Usuario desconocido';
        $log_entry = '[' . date('Y-m-d H:i:s') . '] INFO: Logs limpiados por usuario: ' . $usuario . ' (Respaldo creado: ' . basename($backup_file) . ')' . PHP_EOL;
        file_put_contents($log_file, $log_entry, FILE_APPEND);

        echo json_encode([
            'success' => true,
            'message' => 'Logs limpiados correctamente. Respaldo guardado como: ' . basename($backup_file)
        ]);
    } else {
        echo json_encode(['success' => false, 'error' => 'No se pudo crear el respaldo']);
    }
} catch (Exception $e) {
    echo json_encode(['success' => false, 'error' => 'Error interno: ' . $e->getMessage()]);
}
