<?php
// includes/modules/audit_logger.php

/**
 * دالة لتسجيل أي نشاط في النظام
 * @param object $pdo اتصال قاعدة البيانات
 * @param string $action نوع العملية (مثلاً: login, approve, delete)
 * @param string $desc وصف العملية
 */
function logActivity($pdo, $action, $desc) {
    if (session_status() === PHP_SESSION_NONE) {
        session_start();
    }

    // لا نسجل العمليات إذا لم يكن المستخدم مسجلاً للدخول (إلا في حالات خاصة)
    if (!isset($_SESSION['id'])) return;

    try {
        $user_id = $_SESSION['id'];
        $username = $_SESSION['fullname'] ?? 'Unknown';
        $role = $_SESSION['role'] ?? 'guest';
        $ip = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';

        $sql = "INSERT INTO system_logs (user_id, username, role, action, description, ip_address) 
                VALUES (?, ?, ?, ?, ?, ?)";
        
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$user_id, $username, $role, $action, $desc, $ip]);

    } catch (PDOException $e) {
        // في حال حدوث خطأ في السجل، نكتفي بكتابته في ملف الأخطاء لكي لا نوقف النظام
        error_log("Audit Log Error: " . $e->getMessage());
    }
}
?>