<?php
$pageTitle = 'تقرير نشاط المستخدمين';
include __DIR__ . '/../../includes/header.php';

// التحقق من الصلاحيات
checkLogin();
// تأكد من أن الصلاحية هنا مناسبة لتقرير نشاط المستخدمين
if (!hasPermission('view_user_activity_report')) { // يمكنك استخدام صلاحية موجودة أو إنشاء واحدة جديدة
    header('Location: ' . SITE_URL . '/pages/errors/access_denied.php');
    exit();
}

$db = getDB();

// --- معالجة فلاتر البحث والفلترة ---
// الافتراضي: بداية اليوم الحالي إلى نهايته
$start_date = $_GET['start_date'] ?? date('Y-m-d');
$end_date = $_GET['end_date'] ?? date('Y-m-d');
$user_id_filter = $_GET['user_id'] ?? '';
$ip_address_filter = $_GET['ip_address'] ?? '';


// تحويل تواريخ البدء والانتهاء إلى تنسيق قاعدة البيانات لمدى اليوم كاملاً
$start_datetime_db = $start_date . ' 00:00:00';
$end_datetime_db = $end_date . ' 23:59:59';


// --- جلب بيانات الجلسات التفصيلية ---
$sql_sessions = "SELECT us.*, u.username, u.full_name, u.email
                FROM user_sessions us
                JOIN users u ON us.user_id = u.id
                WHERE us.created_at BETWEEN ? AND ?"; // created_at هنا يمثل وقت تسجيل الدخول

$params_sessions = [$start_datetime_db, $end_datetime_db];

if (!empty($user_id_filter)) {
    $sql_sessions .= " AND us.user_id = ?";
    $params_sessions[] = $user_id_filter;
}
if (!empty($ip_address_filter)) {
    $sql_sessions .= " AND us.ip_address LIKE ?";
    $params_sessions[] = '%' . $ip_address_filter . '%'; // البحث عن جزء من عنوان IP
}

$sql_sessions .= " ORDER BY us.created_at DESC";

$user_sessions_data = $db->select($sql_sessions, $params_sessions);


// --- جلب قائمة المستخدمين لعرضهم في الفلتر ---
$users_list = $db->select("SELECT id, username, full_name FROM users ORDER BY username ASC");


// --- إحصائيات عامة (معالجة أخطاء الاستعلامات) ---
$total_sessions = 0;
$unique_users_with_sessions = 0;

$total_sessions_data = $db->selectOne("SELECT COUNT(*) as count FROM user_sessions WHERE created_at BETWEEN ? AND ?", [$start_datetime_db, $end_datetime_db]);
if ($total_sessions_data !== false) {
    $total_sessions = $total_sessions_data['count'];
}

$unique_users_data = $db->selectOne("SELECT COUNT(DISTINCT user_id) as count FROM user_sessions WHERE created_at BETWEEN ? AND ?", [$start_datetime_db, $end_datetime_db]);
if ($unique_users_data !== false) {
    $unique_users_with_sessions = $unique_users_data['count'];
}


?>

<div class="container-fluid">
    <div class="row">
        <div class="col-lg-12">
            <div class="card">
                <div class="card-header">
                    <h3 class="card-title"><?php echo $pageTitle; ?></h3>
                </div>
                <div class="card-body">
                    <p class="lead">يعرض هذا التقرير تفاصيل جلسات تسجيل الدخول للمستخدمين في النظام.</p>

                    <form action="" method="GET" class="row g-3 align-items-end mb-4 bg-light p-3 rounded shadow-sm">
                        <div class="col-md-3">
                            <label for="start_date" class="form-label">تاريخ البدء:</label>
                            <input type="date" class="form-control" id="start_date" name="start_date" value="<?php echo htmlspecialchars($start_date); ?>">
                        </div>
                        <div class="col-md-3">
                            <label for="end_date" class="form-label">تاريخ الانتهاء:</label>
                            <input type="date" class="form-control" id="end_date" name="end_date" value="<?php echo htmlspecialchars($end_date); ?>">
                        </div>
                        <div class="col-md-3">
                            <label for="user_id" class="form-label">المستخدم:</label>
                            <select class="form-select" id="user_id" name="user_id">
                                <option value="">جميع المستخدمين</option>
                                <?php
                                if (is_array($users_list)):
                                    foreach ($users_list as $user): ?>
                                    <option value="<?php echo htmlspecialchars($user['id']); ?>"
                                            <?php echo ($user_id_filter == $user['id']) ? 'selected' : ''; ?>>
                                        <?php echo htmlspecialchars($user['username'] . ' (' . $user['full_name'] . ')'); ?>
                                    </option>
                                <?php
                                    endforeach;
                                endif;
                                ?>
                            </select>
                        </div>
                        <div class="col-md-3">
                            <label for="ip_address" class="form-label">عنوان IP:</label>
                            <input type="text" class="form-control" id="ip_address" name="ip_address" value="<?php echo htmlspecialchars($ip_address_filter); ?>" placeholder="مثال: 192.168.1.1">
                        </div>
                        <div class="col-12 mt-3 text-center">
                            <button type="submit" class="btn btn-primary">
                                <i class="fas fa-filter me-2"></i>تصفية التقرير
                            </button>
                            <a href="<?php echo SITE_URL; ?>/pages/reports/user_activity.php" class="btn btn-outline-secondary ms-2">
                                <i class="fas fa-sync-alt me-2"></i>إعادة تعيين الفلاتر
                            </a>
                        </div>
                    </form>

                    <div class="row mb-4">
                        <div class="col-md-6 mb-3">
                            <div class="card text-white bg-primary h-100">
                                <div class="card-body">
                                    <h5 class="card-title">إجمالي الجلسات (تسجيل الدخول)</h5>
                                    <p class="card-text fs-4"><?php echo $total_sessions; ?></p>
                                </div>
                            </div>
                        </div>
                        <div class="col-md-6 mb-3">
                            <div class="card text-white bg-info h-100">
                                <div class="card-body">
                                    <h5 class="card-title">عدد المستخدمين الفريدين</h5>
                                    <p class="card-text fs-4"><?php echo $unique_users_with_sessions; ?></p>
                                </div>
                            </div>
                        </div>
                    </div>

                    <h4 class="mb-3">تفاصيل الجلسات</h4>
                    <?php if (empty($user_sessions_data) || $user_sessions_data === false): ?>
                        <div class="alert alert-info text-center" role="alert">
                            لا توجد جلسات مسجلة في الفترة المحددة أو بناءً على الفلاتر.
                        </div>
                    <?php else: ?>
                        <div class="table-responsive">
                            <table class="table table-hover table-striped table-bordered">
                                <thead>
                                    <tr>
                                        <th>اسم المستخدم</th>
                                        <th>وقت تسجيل الدخول</th>
                                        <th>عنوان IP</th>
                                        <th>وكيل المستخدم (المتصفح/الجهاز)</th>
                                        <th>وقت انتهاء الجلسة</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($user_sessions_data as $session): ?>
                                        <tr>
                                            <td>
                                                <?php echo htmlspecialchars($session['full_name'] ?: $session['username']); ?>
                                                <small class="text-muted d-block"><?php echo htmlspecialchars($session['email']); ?></small>
                                            </td>
                                            <td><?php echo htmlspecialchars(date('Y-m-d H:i:s', strtotime($session['created_at']))); ?></td>
                                            <td><?php echo htmlspecialchars($session['ip_address']); ?></td>
                                            <td><?php echo htmlspecialchars($session['user_agent']); ?></td>
                                            <td><?php echo htmlspecialchars(date('Y-m-d H:i:s', strtotime($session['expires_at']))); ?></td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    <?php endif; ?>

                    <div class="mt-4 text-center">
                        <a href="<?php echo SITE_URL; ?>/pages/reports/index.php" class="btn btn-secondary">
                            <i class="fas fa-arrow-left me-2"></i>العودة إلى صفحة التقارير الرئيسية
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<?php include __DIR__ . '/../../includes/footer.php'; ?>