<?php
require_once '../config.php';

// التحقق من تسجيل الدخول
requireLogin();

// التحقق من وجود معرف الحصة التدريبية
if (!isset($_GET['id']) || empty($_GET['id'])) {
    setAlert('danger', 'معرف الحصة التدريبية مطلوب');
    header('Location: ' . SITE_URL . '/training/index.php');
    exit;
}

$sessionId = (int)$_GET['id'];

// الحصول على بيانات الحصة التدريبية
$query = "SELECT t.*, c.first_name || ' ' || c.last_name as coach_name, cat.name as category_name 
          FROM training_sessions t 
          LEFT JOIN coaches c ON t.coach_id = c.id 
          LEFT JOIN categories cat ON t.category_id = cat.id 
          WHERE t.id = :id";
$session = fetchOne($query, [':id' => $sessionId]);

if (!$session) {
    setAlert('danger', 'الحصة التدريبية غير موجودة');
    header('Location: ' . SITE_URL . '/training/index.php');
    exit;
}

// تحديد تاريخ الحصة (اليوم افتراضيًا)
$sessionDate = isset($_GET['date']) ? sanitizeInput($_GET['date']) : date('Y-m-d');

// الحصول على قائمة المنخرطين المناسبين للحصة (حسب الفئة إذا كانت محددة)
$membersQuery = "SELECT * FROM members WHERE 1=1";
$membersParams = [];

if (!empty($session['category_id'])) {
    $membersQuery .= " AND category_id = :category_id";
    $membersParams[':category_id'] = $session['category_id'];
}

$membersQuery .= " ORDER BY first_name ASC, last_name ASC";
$members = fetchAll($membersQuery, $membersParams);

// التحقق من وجود سجلات حضور سابقة لهذا التاريخ والحصة
$query = "SELECT * FROM attendance WHERE training_session_id = :session_id AND session_date = :session_date";
$params = [':session_id' => $sessionId, ':session_date' => $sessionDate];
$existingRecords = fetchAll($query, $params);

// تنظيم سجلات الحضور الموجودة حسب معرف المنخرط
$attendanceByMemberId = [];
foreach ($existingRecords as $record) {
    $attendanceByMemberId[$record['member_id']] = $record;
}

// معالجة النموذج عند الإرسال
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // حذف السجلات القديمة لهذا التاريخ والحصة
    $query = "DELETE FROM attendance WHERE training_session_id = :session_id AND session_date = :session_date";
    executeQuery($query, $params);
    
    // إضافة السجلات الجديدة
    if (isset($_POST['attendance']) && is_array($_POST['attendance'])) {
        foreach ($_POST['attendance'] as $memberId => $status) {
            // تخطي السجلات الفارغة
            if (empty($status)) {
                continue;
            }
            
            $notes = isset($_POST['notes'][$memberId]) ? sanitizeInput($_POST['notes'][$memberId]) : '';
            
            $query = "INSERT INTO attendance (
                      member_id, training_session_id, session_date, status, 
                      notes, recorded_by
                      ) VALUES (
                      :member_id, :training_session_id, :session_date, :status, 
                      :notes, :recorded_by
                      )";
            
            $params = [
                ':member_id' => $memberId,
                ':training_session_id' => $sessionId,
                ':session_date' => $sessionDate,
                ':status' => $status,
                ':notes' => $notes,
                ':recorded_by' => $_SESSION['user_id']
            ];
            
            executeQuery($query, $params);
        }
    }
    
    setAlert('success', 'تم تسجيل الحضور بنجاح');
    header('Location: ' . SITE_URL . '/training/index.php');
    exit;
}

// عنوان الصفحة
$pageTitle = 'تسجيل الحضور - ' . $session['title'];

// تضمين ملف الهيدر
include '../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
    <h1 class="h3 mb-0"><i class="fas fa-clipboard-check me-2"></i> تسجيل الحضور</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/training/index.php" class="btn btn-secondary">
            <i class="fas fa-arrow-right"></i> العودة إلى قائمة الحصص
        </a>
    </div>
</div>

<div class="card mb-4">
    <div class="card-header bg-primary text-white">
        <div class="d-flex justify-content-between align-items-center">
            <div>
                <h5 class="mb-0"><?php echo $session['title']; ?></h5>
                <div class="small">
                    <?php echo getArabicDayName($session['day_of_week']); ?> | 
                    <?php echo formatTime($session['start_time']) . ' - ' . formatTime($session['end_time']); ?> | 
                    <?php echo $session['location'] ?: 'المكان غير محدد'; ?>
                </div>
            </div>
            <div>
                <form id="date-form" class="d-flex align-items-center">
                    <input type="hidden" name="id" value="<?php echo $sessionId; ?>">
                    <label for="session_date" class="form-label text-white me-2 mb-0">تاريخ الحصة:</label>
                    <input type="date" class="form-control form-control-sm" id="session_date" name="date" value="<?php echo $sessionDate; ?>">
                    <button type="submit" class="btn btn-sm btn-light ms-2">
                        <i class="fas fa-search"></i> عرض
                    </button>
                </form>
            </div>
        </div>
    </div>
    <div class="card-body">
        <?php if (count($members) > 0): ?>
            <form action="" method="post">
                <div class="table-responsive">
                    <table class="table table-striped table-hover">
                        <thead>
                            <tr>
                                <th width="5%">#</th>
                                <th width="15%">الصورة</th>
                                <th width="20%">الاسم</th>
                                <th width="15%">الفئة</th>
                                <th width="15%">الحالة</th>
                                <th width="30%">ملاحظات</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach ($members as $index => $member): ?>
                                <?php
                                $photoPath = !empty($member['photo']) 
                                    ? SITE_URL . '/uploads/members/' . $member['photo'] 
                                    : SITE_URL . '/assets/img/default-user.png';
                                
                                $status = isset($attendanceByMemberId[$member['id']]) 
                                    ? $attendanceByMemberId[$member['id']]['status'] 
                                    : '';
                                
                                $notes = isset($attendanceByMemberId[$member['id']]) 
                                    ? $attendanceByMemberId[$member['id']]['notes'] 
                                    : '';
                                ?>
                                <tr>
                                    <td><?php echo $index + 1; ?></td>
                                    <td>
                                        <img src="<?php echo $photoPath; ?>" alt="صورة المنخرط" class="img-thumbnail" style="max-width: 50px;">
                                    </td>
                                    <td>
                                        <a href="<?php echo SITE_URL; ?>/members/view.php?id=<?php echo $member['id']; ?>" target="_blank">
                                            <?php echo $member['first_name'] . ' ' . $member['last_name']; ?>
                                        </a>
                                    </td>
                                    <td><?php echo getCategoryName($member['category_id']); ?></td>
                                    <td>
                                        <select class="form-select" name="attendance[<?php echo $member['id']; ?>]">
                                            <option value="">-- اختر الحالة --</option>
                                            <option value="present" <?php echo ($status === 'present') ? 'selected' : ''; ?>>حاضر</option>
                                            <option value="absent" <?php echo ($status === 'absent') ? 'selected' : ''; ?>>غائب</option>
                                            <option value="excused" <?php echo ($status === 'excused') ? 'selected' : ''; ?>>معذور</option>
                                        </select>
                                    </td>
                                    <td>
                                        <input type="text" class="form-control" name="notes[<?php echo $member['id']; ?>]" value="<?php echo $notes; ?>">
                                    </td>
                                </tr>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
                
                <div class="d-grid gap-2 d-md-flex justify-content-md-end mt-4">
                    <a href="<?php echo SITE_URL; ?>/training/index.php" class="btn btn-secondary me-md-2">
                        <i class="fas fa-times"></i> إلغاء
                    </a>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-save"></i> حفظ سجل الحضور
                    </button>
                </div>
            </form>
        <?php else: ?>
            <div class="alert alert-info">
                <i class="fas fa-info-circle me-2"></i> لا يوجد منخرطين مسجلين في هذه الفئة.
            </div>
        <?php endif; ?>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // تغيير التاريخ تلقائيًا عند تغيير حقل التاريخ
    const dateForm = document.getElementById('date-form');
    const sessionDateInput = document.getElementById('session_date');
    
    sessionDateInput.addEventListener('change', function() {
        dateForm.submit();
    });
});
</script>

<?php
// تضمين ملف الفوتر
include '../includes/footer.php';

/**
 * الحصول على اسم الفئة من معرفها
 *
 * @param int $categoryId معرف الفئة
 * @return string اسم الفئة
 */
function getCategoryName($categoryId) {
    $query = "SELECT name FROM categories WHERE id = :id";
    $category = fetchOne($query, [':id' => $categoryId]);
    
    return $category ? $category['name'] : 'غير محدد';
}
?>
