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

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

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

$eventId = (int)$_GET['event_id'];

// الحصول على بيانات النشاط
$query = "SELECT * FROM events WHERE id = :id";
$event = fetchOne($query, [':id' => $eventId]);

// التحقق من وجود النشاط
if (!$event) {
    setAlert('danger', 'النشاط غير موجود');
    header('Location: ' . SITE_URL . '/events/index.php');
    exit;
}

// التحقق من حالة النشاط
if ($event['status'] !== 'upcoming' && $event['status'] !== 'ongoing' && $event['status'] !== 'scheduled') {
    setAlert('danger', 'لا يمكن التسجيل في هذا النشاط حالياً');
    header('Location: ' . SITE_URL . '/events/view.php?id=' . $eventId);
    exit;
}

// التحقق من تاريخ انتهاء التسجيل
if (!empty($event['registration_deadline']) && strtotime($event['registration_deadline']) < strtotime(date('Y-m-d'))) {
    setAlert('danger', 'انتهت فترة التسجيل لهذا النشاط');
    header('Location: ' . SITE_URL . '/events/view.php?id=' . $eventId);
    exit;
}

// التحقق من عدد المشاركين الحالي مقابل الحد الأقصى
if ($event['max_participants'] > 0) {
    $query = "SELECT COUNT(*) as count FROM event_participants WHERE event_id = :event_id";
    $participantCount = fetchOne($query, [':event_id' => $eventId]);
    
    if ($participantCount['count'] >= $event['max_participants']) {
        setAlert('danger', 'تم الوصول إلى الحد الأقصى للمشاركين في هذا النشاط');
        header('Location: ' . SITE_URL . '/events/view.php?id=' . $eventId);
        exit;
    }
}

// الحصول على قائمة الأعضاء غير المسجلين في النشاط
$query = "SELECT m.* FROM members m 
          WHERE m.id NOT IN (
              SELECT member_id FROM event_participants WHERE event_id = :event_id
          )
          ORDER BY m.first_name, m.last_name";
$availableMembers = fetchAll($query, [':event_id' => $eventId]);

// معالجة نموذج التسجيل
$errors = [];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // التحقق من البيانات المرسلة
    if (!isset($_POST['member_id']) || empty($_POST['member_id'])) {
        $errors[] = 'يرجى اختيار عضو للتسجيل';
    } else {
        $memberId = (int)$_POST['member_id'];
        
        // التحقق من عدم تسجيل العضو مسبقاً
        $query = "SELECT id FROM event_participants WHERE event_id = :event_id AND member_id = :member_id";
        $existingRegistration = fetchOne($query, [':event_id' => $eventId, ':member_id' => $memberId]);
        
        if ($existingRegistration) {
            $errors[] = 'هذا العضو مسجل بالفعل في هذا النشاط';
        }
    }
    
    $notes = isset($_POST['notes']) ? sanitizeInput($_POST['notes']) : '';
    
    // إذا لم تكن هناك أخطاء، قم بإضافة المشارك
    if (empty($errors)) {
        $query = "INSERT INTO event_participants (event_id, member_id, registration_date, notes) 
                  VALUES (:event_id, :member_id, :registration_date, :notes)";
        $params = [
            ':event_id' => $eventId,
            ':member_id' => $memberId,
            ':registration_date' => date('Y-m-d'),
            ':notes' => $notes
        ];
        
        $result = insert($query, $params);
        
        if ($result) {
            setAlert('success', 'تم تسجيل المشارك بنجاح');
            header('Location: ' . SITE_URL . '/events/participants.php?event_id=' . $eventId);
            exit;
        } else {
            $errors[] = 'حدث خطأ أثناء تسجيل المشارك';
        }
    }
}

// عنوان الصفحة
$pageTitle = 'تسجيل مشارك جديد في النشاط: ' . $event['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-user-plus me-2"></i> تسجيل مشارك جديد</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/events/participants.php?event_id=<?php echo $event['id']; ?>" class="btn btn-secondary">
            <i class="fas fa-arrow-right"></i> العودة إلى قائمة المشاركين
        </a>
    </div>
</div>

<div class="card mb-4">
    <div class="card-header bg-light">
        <h5 class="mb-0">تسجيل مشارك في النشاط: <?php echo $event['title']; ?></h5>
    </div>
    <div class="card-body">
        <?php if (!empty($errors)): ?>
            <div class="alert alert-danger">
                <ul class="mb-0">
                    <?php foreach ($errors as $error): ?>
                        <li><?php echo $error; ?></li>
                    <?php endforeach; ?>
                </ul>
            </div>
        <?php endif; ?>
        
        <?php if (count($availableMembers) > 0): ?>
            <form method="post" action="">
                <div class="row">
                    <div class="col-md-6 mb-3">
                        <label for="member_id" class="form-label">اختر العضو <span class="text-danger">*</span></label>
                        <select class="form-select" id="member_id" name="member_id" required>
                            <option value="">-- اختر عضو --</option>
                            <?php foreach ($availableMembers as $member): ?>
                                <option value="<?php echo $member['id']; ?>">
                                    <?php echo $member['first_name'] . ' ' . $member['last_name']; ?>
                                    <?php if (!empty($member['email'])): ?>
                                        (<?php echo $member['email']; ?>)
                                    <?php endif; ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    <div class="col-md-6 mb-3">
                        <label for="registration_date" class="form-label">تاريخ التسجيل</label>
                        <input type="date" class="form-control" id="registration_date" name="registration_date" value="<?php echo date('Y-m-d'); ?>" readonly>
                        <div class="form-text">تاريخ التسجيل هو تاريخ اليوم تلقائياً</div>
                    </div>
                </div>
                
                <div class="mb-3">
                    <label for="notes" class="form-label">ملاحظات</label>
                    <textarea class="form-control" id="notes" name="notes" rows="3"></textarea>
                </div>
                
                <div class="alert alert-info mb-4">
                    <div class="d-flex">
                        <div class="me-3">
                            <i class="fas fa-info-circle fa-2x"></i>
                        </div>
                        <div>
                            <h5 class="alert-heading">معلومات النشاط</h5>
                            <p class="mb-0">
                                <?php if ($event['max_participants'] > 0): ?>
                                    <strong>الحد الأقصى للمشاركين:</strong> <?php echo $event['max_participants']; ?><br>
                                <?php endif; ?>
                                <?php if (!empty($event['registration_deadline'])): ?>
                                    <strong>الموعد النهائي للتسجيل:</strong> <?php echo formatDate($event['registration_deadline']); ?><br>
                                <?php endif; ?>
                                <strong>تاريخ النشاط:</strong> <?php echo formatDate($event['start_date']); ?>
                                <?php if (!empty($event['end_date']) && $event['end_date'] != $event['start_date']): ?>
                                    - <?php echo formatDate($event['end_date']); ?>
                                <?php endif; ?>
                            </p>
                        </div>
                    </div>
                </div>
                
                <div class="d-grid gap-2 d-md-flex justify-content-md-end">
                    <a href="<?php echo SITE_URL; ?>/events/participants.php?event_id=<?php echo $event['id']; ?>" class="btn btn-secondary me-md-2">إلغاء</a>
                    <button type="submit" class="btn btn-success">تسجيل المشارك</button>
                </div>
            </form>
        <?php else: ?>
            <div class="alert alert-warning">
                <i class="fas fa-exclamation-triangle me-2"></i> جميع الأعضاء مسجلين بالفعل في هذا النشاط.
            </div>
            <div class="d-grid gap-2 d-md-flex justify-content-md-end">
                <a href="<?php echo SITE_URL; ?>/events/participants.php?event_id=<?php echo $event['id']; ?>" class="btn btn-secondary">العودة إلى قائمة المشاركين</a>
            </div>
        <?php endif; ?>
    </div>
</div>

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