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

// Vérifier que l'utilisateur est connecté
if (empty($_SESSION['user_email'])) {
    http_response_code(401);
    echo json_encode(['error' => 'Non autorisé']);
    exit;
}

// Fonction pour lire les derniers logs
function getRecentLogs($limit = 5) {
    $compagnie_ref = $_SESSION['compagnie_ref'] ?? '123456';
    $logFile = __DIR__ . '/data/' . $compagnie_ref . '/journal.log';
    
    if (!file_exists($logFile)) {
        return [];
    }
    
    $lines = file($logFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    if ($lines === false) {
        return [];
    }
    
    // Filtrer les lignes de commentaires et prendre les dernières entrées
    $logEntries = [];
    foreach (array_reverse($lines) as $line) {
        if (!empty($line) && !str_starts_with($line, '#')) {
            $logEntries[] = $line;
            if (count($logEntries) >= $limit) {
                break;
            }
        }
    }
    
    return $logEntries;
}

// Fonction pour analyser une ligne de log
function parseLogEntry($logLine) {
    // Format: 2025-07-30 12:24:04, LAHRACH YOUSSEF à action...
    if (preg_match('/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}), (.+?) à (.+)$/', $logLine, $matches)) {
        $datetime = $matches[1];
        $user = $matches[2];
        $action = $matches[3];
        
        return [
            'datetime' => $datetime,
            'user' => $user,
            'action' => $action
        ];
    }
    
    return null;
}

try {
    $recentLogs = getRecentLogs(5);
    $parsedLogs = [];
    
    foreach ($recentLogs as $logLine) {
        $logData = parseLogEntry($logLine);
        if ($logData) {
            $parsedLogs[] = $logData;
        }
    }
    
    echo json_encode([
        'success' => true,
        'logs' => $parsedLogs
    ]);
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'error' => 'Erreur lors de la lecture des logs'
    ]);
}
?>
