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

// التحقق من تسجيل الدخول وصلاحيات المدير
requireLogin();
requirePermission('admin');

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

$eventId = (int)$_GET['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;
}

// الحصول على قائمة الفئات
$query = "SELECT * FROM categories ORDER BY name";
$categories = fetchAll($query);

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

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // التحقق من البيانات المرسلة
    if (!isset($_POST['title']) || empty($_POST['title'])) {
        $errors[] = 'عنوان النشاط مطلوب';
    }
    
    if (!isset($_POST['start_date']) || empty($_POST['start_date'])) {
        $errors[] = 'تاريخ بدء النشاط مطلوب';
    }
    
    $title = sanitizeInput($_POST['title']);
    $description = isset($_POST['description']) ? sanitizeInput($_POST['description']) : '';
    $location = isset($_POST['location']) ? sanitizeInput($_POST['location']) : '';
    $startDate = sanitizeInput($_POST['start_date']);
    $endDate = isset($_POST['end_date']) && !empty($_POST['end_date']) ? sanitizeInput($_POST['end_date']) : $startDate;
    $startTime = isset($_POST['start_time']) ? sanitizeInput($_POST['start_time']) : '';
    $endTime = isset($_POST['end_time']) ? sanitizeInput($_POST['end_time']) : '';
    $categoryId = isset($_POST['category_id']) && !empty($_POST['category_id']) ? (int)$_POST['category_id'] : null;
    $status = isset($_POST['status']) ? sanitizeInput($_POST['status']) : 'upcoming';
    $registrationRequired = isset($_POST['registration_required']) ? 1 : 0;
    $registrationDeadline = isset($_POST['registration_deadline']) && !empty($_POST['registration_deadline']) ? sanitizeInput($_POST['registration_deadline']) : null;
    $maxParticipants = isset($_POST['max_participants']) && !empty($_POST['max_participants']) ? (int)$_POST['max_participants'] : 0;
    
    // التحقق من صحة التواريخ
    if ($endDate < $startDate) {
        $errors[] = 'تاريخ نهاية النشاط لا يمكن أن يكون قبل تاريخ البدء';
    }
    
    if ($registrationRequired && !empty($registrationDeadline) && $registrationDeadline > $startDate) {
        $errors[] = 'الموعد النهائي للتسجيل لا يمكن أن يكون بعد تاريخ بدء النشاط';
    }
    
    // معالجة الصورة
    $image = $event['image']; // الاحتفاظ بالصورة الحالية إذا لم يتم تحميل صورة جديدة
    
    if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) {
        $uploadDir = '../uploads/events/';
        
        // إنشاء المجلد إذا لم يكن موجوداً
        if (!file_exists($uploadDir)) {
            mkdir($uploadDir, 0777, true);
        }
        
        $fileExtension = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION);
        $newFileName = 'event_' . time() . '.' . $fileExtension;
        $uploadPath = $uploadDir . $newFileName;
        
        // التحقق من نوع الملف
        $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif'];
        if (!in_array(strtolower($fileExtension), $allowedExtensions)) {
            $errors[] = 'نوع الصورة غير مسموح به. الأنواع المسموح بها: ' . implode(', ', $allowedExtensions);
        } else {
            // نقل الملف
            if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadPath)) {
                // حذف الصورة القديمة إذا كانت موجودة
                if (!empty($event['image'])) {
                    $oldImagePath = $uploadDir . $event['image'];
                    if (file_exists($oldImagePath)) {
                        unlink($oldImagePath);
                    }
                }
                
                $image = $newFileName;
            } else {
                $errors[] = 'حدث خطأ أثناء رفع الصورة';
            }
        }
    }
    
    // إذا تم تحديد خيار حذف الصورة
    if (isset($_POST['delete_image']) && $_POST['delete_image'] == 1 && !empty($event['image'])) {
        $imagePath = '../uploads/events/' . $event['image'];
        if (file_exists($imagePath)) {
            unlink($imagePath);
        }
        $image = '';
    }
    
    // إذا لم تكن هناك أخطاء، قم بتحديث النشاط
    if (empty($errors)) {
        $query = "UPDATE events 
                  SET title = :title, description = :description, location = :location, 
                      start_date = :start_date, end_date = :end_date, start_time = :start_time, end_time = :end_time, 
                      category_id = :category_id, status = :status, image = :image, 
                      registration_required = :registration_required, registration_deadline = :registration_deadline, 
                      max_participants = :max_participants, updated_at = :updated_at 
                  WHERE id = :id";
        $params = [
            ':id' => $eventId,
            ':title' => $title,
            ':description' => $description,
            ':location' => $location,
            ':start_date' => $startDate,
            ':end_date' => $endDate,
            ':start_time' => $startTime,
            ':end_time' => $endTime,
            ':category_id' => $categoryId,
            ':status' => $status,
            ':image' => $image,
            ':registration_required' => $registrationRequired,
            ':registration_deadline' => $registrationDeadline,
            ':max_participants' => $maxParticipants,
            ':updated_at' => date('Y-m-d H:i:s')
        ];
        
        $result = execute($query, $params);
        
        if ($result) {
            setAlert('success', 'تم تحديث النشاط بنجاح');
            header('Location: ' . SITE_URL . '/events/view.php?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-edit me-2"></i> تعديل النشاط</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/events/view.php?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">تعديل بيانات النشاط</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; ?>
        
        <form method="post" action="" enctype="multipart/form-data">
            <div class="row">
                <div class="col-md-6 mb-3">
                    <label for="title" class="form-label">عنوان النشاط <span class="text-danger">*</span></label>
                    <input type="text" class="form-control" id="title" name="title" value="<?php echo $event['title']; ?>" required>
                </div>
                <div class="col-md-6 mb-3">
                    <label for="category_id" class="form-label">الفئة</label>
                    <select class="form-select" id="category_id" name="category_id">
                        <option value="">-- اختر الفئة --</option>
                        <?php foreach ($categories as $category): ?>
                            <option value="<?php echo $category['id']; ?>" <?php echo ($event['category_id'] == $category['id']) ? 'selected' : ''; ?>>
                                <?php echo $category['name']; ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
            </div>
            
            <div class="mb-3">
                <label for="description" class="form-label">وصف النشاط</label>
                <textarea class="form-control" id="description" name="description" rows="4"><?php echo $event['description']; ?></textarea>
            </div>
            
            <div class="row">
                <div class="col-md-6 mb-3">
                    <label for="location" class="form-label">مكان النشاط</label>
                    <input type="text" class="form-control" id="location" name="location" value="<?php echo $event['location']; ?>">
                </div>
                <div class="col-md-6 mb-3">
                    <label for="status" class="form-label">حالة النشاط <span class="text-danger">*</span></label>
                    <select class="form-select" id="status" name="status" required>
                        <option value="upcoming" <?php echo ($event['status'] === 'upcoming') ? 'selected' : ''; ?>>قادم</option>
                        <option value="ongoing" <?php echo ($event['status'] === 'ongoing') ? 'selected' : ''; ?>>جاري</option>
                        <option value="completed" <?php echo ($event['status'] === 'completed') ? 'selected' : ''; ?>>مكتمل</option>
                        <option value="cancelled" <?php echo ($event['status'] === 'cancelled') ? 'selected' : ''; ?>>ملغي</option>
                    </select>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-3 mb-3">
                    <label for="start_date" class="form-label">تاريخ البدء <span class="text-danger">*</span></label>
                    <input type="date" class="form-control" id="start_date" name="start_date" value="<?php echo $event['start_date']; ?>" required>
                </div>
                <div class="col-md-3 mb-3">
                    <label for="end_date" class="form-label">تاريخ الانتهاء</label>
                    <input type="date" class="form-control" id="end_date" name="end_date" value="<?php echo $event['end_date']; ?>">
                    <div class="form-text">إذا كان النشاط ليوم واحد، اترك هذا الحقل فارغاً</div>
                </div>
                <div class="col-md-3 mb-3">
                    <label for="start_time" class="form-label">وقت البدء</label>
                    <input type="time" class="form-control" id="start_time" name="start_time" value="<?php echo $event['start_time']; ?>">
                </div>
                <div class="col-md-3 mb-3">
                    <label for="end_time" class="form-label">وقت الانتهاء</label>
                    <input type="time" class="form-control" id="end_time" name="end_time" value="<?php echo $event['end_time']; ?>">
                </div>
            </div>
            
            <div class="mb-3">
                <label class="form-label">صورة النشاط</label>
                <div class="input-group mb-3">
                    <input type="file" class="form-control" id="image" name="image">
                    <label class="input-group-text" for="image">اختر صورة</label>
                </div>
                <?php if (!empty($event['image'])): ?>
                <div class="mb-2">
                    <div class="d-flex align-items-center">
                        <img src="<?php echo SITE_URL; ?>/uploads/events/<?php echo $event['image']; ?>" class="img-thumbnail me-3" alt="<?php echo $event['title']; ?>" style="max-width: 150px;">
                        <div class="form-check">
                            <input class="form-check-input" type="checkbox" id="delete_image" name="delete_image" value="1">
                            <label class="form-check-label" for="delete_image">
                                حذف الصورة الحالية
                            </label>
                        </div>
                    </div>
                </div>
                <?php endif; ?>
                <div class="form-text">أنواع الصور المسموح بها: JPG, JPEG, PNG, GIF</div>
            </div>
            
            <div class="card mb-3">
                <div class="card-header bg-light">
                    <h6 class="mb-0">إعدادات التسجيل</h6>
                </div>
                <div class="card-body">
                    <div class="form-check mb-3">
                        <input class="form-check-input" type="checkbox" id="registration_required" name="registration_required" value="1" <?php echo ($event['registration_required'] == 1) ? 'checked' : ''; ?>>
                        <label class="form-check-label" for="registration_required">
                            التسجيل مطلوب للمشاركة في هذا النشاط
                        </label>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label for="registration_deadline" class="form-label">الموعد النهائي للتسجيل</label>
                            <input type="date" class="form-control" id="registration_deadline" name="registration_deadline" value="<?php echo $event['registration_deadline']; ?>">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label for="max_participants" class="form-label">الحد الأقصى للمشاركين</label>
                            <input type="number" class="form-control" id="max_participants" name="max_participants" min="0" value="<?php echo $event['max_participants']; ?>">
                            <div class="form-text">اترك 0 لعدم تحديد حد أقصى</div>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="d-grid gap-2 d-md-flex justify-content-md-end">
                <a href="<?php echo SITE_URL; ?>/events/view.php?id=<?php echo $event['id']; ?>" class="btn btn-secondary me-md-2">إلغاء</a>
                <button type="submit" class="btn btn-primary">حفظ التغييرات</button>
            </div>
        </form>
    </div>
</div>

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