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

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

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

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

// استعلام بيانات المؤطر
$query = "SELECT * FROM coaches WHERE id = :id";
$coach = fetchOne($query, [':id' => $coachId]);

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

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

// الحصول على الفئات التي يدربها المؤطر
$query = "SELECT category_id FROM coach_categories WHERE coach_id = :coach_id";
$coachCategories = fetchAll($query, [':coach_id' => $coachId]);
$selectedCategories = array_column($coachCategories, 'category_id');

// معالجة النموذج
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // تحقق من البيانات المدخلة
    $firstName = sanitizeInput($_POST['first_name']);
    $lastName = sanitizeInput($_POST['last_name']);
    $birthDate = sanitizeInput($_POST['birth_date']);
    $specialization = sanitizeInput($_POST['specialization']);
    $phone = sanitizeInput($_POST['phone']);
    $email = sanitizeInput($_POST['email']);
    $address = sanitizeInput($_POST['address']);
    $idCard = sanitizeInput($_POST['id_card']);
    $hireDate = sanitizeInput($_POST['hire_date']);
    $salary = (float)$_POST['salary'];
    $status = sanitizeInput($_POST['status']);
    $notes = sanitizeInput($_POST['notes']);
    $selectedCategories = isset($_POST['categories']) ? $_POST['categories'] : [];
    
    // التحقق من البيانات
    $errors = [];
    
    if (empty($firstName)) {
        $errors[] = 'الاسم الأول مطلوب';
    }
    
    if (empty($lastName)) {
        $errors[] = 'الاسم الأخير مطلوب';
    }
    
    if (empty($specialization)) {
        $errors[] = 'التخصص مطلوب';
    }
    
    if (empty($phone)) {
        $errors[] = 'رقم الهاتف مطلوب';
    }
    
    // التحقق من تحميل الصورة
    $photoName = $coach['photo']; // الاحتفاظ بالصورة الحالية إذا لم يتم تحميل صورة جديدة
    if (isset($_FILES['photo']) && $_FILES['photo']['error'] === UPLOAD_ERR_OK) {
        $photoTmpPath = $_FILES['photo']['tmp_name'];
        $photoOrigName = $_FILES['photo']['name'];
        $photoSize = $_FILES['photo']['size'];
        $photoType = $_FILES['photo']['type'];
        
        // التحقق من نوع الملف
        $allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
        if (!in_array($photoType, $allowedTypes)) {
            $errors[] = 'نوع الصورة غير مدعوم. الأنواع المدعومة هي: JPG, PNG, GIF';
        }
        
        // التحقق من حجم الملف
        if ($photoSize > MAX_UPLOAD_SIZE) {
            $errors[] = 'حجم الصورة كبير جدًا. الحد الأقصى هو: ' . (MAX_UPLOAD_SIZE / 1024 / 1024) . ' ميجابايت';
        }
        
        // إنشاء اسم فريد للصورة
        $photoExtension = pathinfo($photoOrigName, PATHINFO_EXTENSION);
        $photoName = uniqid('coach_') . '.' . $photoExtension;
    }
    
    // إذا لم تكن هناك أخطاء، قم بتحديث البيانات
    if (empty($errors)) {
        try {
            // بدء المعاملة
            $db = initDatabase();
            $db->beginTransaction();
            
            // تحديث بيانات المؤطر
            $query = "UPDATE coaches SET 
                first_name = :first_name, 
                last_name = :last_name, 
                birth_date = :birth_date, 
                specialization = :specialization, 
                phone = :phone, 
                email = :email, 
                address = :address, 
                photo = :photo, 
                id_card = :id_card, 
                hire_date = :hire_date, 
                status = :status, 
                salary = :salary, 
                notes = :notes 
                WHERE id = :id";
            
            $params = [
                ':first_name' => $firstName,
                ':last_name' => $lastName,
                ':birth_date' => $birthDate,
                ':specialization' => $specialization,
                ':phone' => $phone,
                ':email' => $email,
                ':address' => $address,
                ':photo' => $photoName,
                ':id_card' => $idCard,
                ':hire_date' => $hireDate,
                ':status' => $status,
                ':salary' => $salary,
                ':notes' => $notes,
                ':id' => $coachId
            ];
            
            update($query, $params);
            
            // إذا تم تحميل صورة جديدة، قم بنقلها إلى المجلد المناسب
            if (isset($_FILES['photo']) && $_FILES['photo']['error'] === UPLOAD_ERR_OK) {
                $targetPath = COACHES_PHOTOS_PATH . '/' . $photoName;
                
                // حذف الصورة القديمة إذا كانت موجودة
                if (!empty($coach['photo']) && $coach['photo'] !== $photoName) {
                    $oldPhotoPath = COACHES_PHOTOS_PATH . '/' . $coach['photo'];
                    if (file_exists($oldPhotoPath)) {
                        unlink($oldPhotoPath);
                    }
                }
                
                // نقل الصورة الجديدة
                if (!move_uploaded_file($photoTmpPath, $targetPath)) {
                    throw new Exception('فشل في تحميل الصورة');
                }
            }
            
            // حذف جميع الفئات الحالية للمؤطر
            $query = "DELETE FROM coach_categories WHERE coach_id = :coach_id";
            delete($query, [':coach_id' => $coachId]);
            
            // إدخال الفئات الجديدة التي يدربها المؤطر
            if (!empty($selectedCategories)) {
                foreach ($selectedCategories as $categoryId) {
                    $query = "INSERT INTO coach_categories (coach_id, category_id) VALUES (:coach_id, :category_id)";
                    $params = [
                        ':coach_id' => $coachId,
                        ':category_id' => $categoryId
                    ];
                    insert($query, $params);
                }
            }
            
            // تأكيد المعاملة
            $db->commit();
            
            // رسالة نجاح
            setAlert('success', 'تم تحديث بيانات المؤطر بنجاح');
            
            // إعادة التوجيه إلى صفحة عرض المؤطر
            header('Location: ' . SITE_URL . '/coaches/view.php?id=' . $coachId);
            exit;
            
        } catch (Exception $e) {
            // التراجع عن المعاملة في حالة حدوث خطأ
            $db->rollBack();
            $errors[] = 'حدث خطأ أثناء تحديث بيانات المؤطر: ' . $e->getMessage();
        }
    }
}

// عنوان الصفحة
$pageTitle = 'تعديل بيانات المؤطر: ' . $coach['first_name'] . ' ' . $coach['last_name'];

// تضمين ملف الهيدر
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-tie me-2"></i> تعديل بيانات المؤطر</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/coaches/view.php?id=<?php echo $coach['id']; ?>" class="btn btn-secondary">
            <i class="fas fa-arrow-right"></i> العودة إلى صفحة العرض
        </a>
    </div>
</div>

<!-- عرض الأخطاء -->
<?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; ?>

<!-- نموذج تعديل بيانات المؤطر -->
<div class="card">
    <div class="card-body">
        <form method="post" action="" enctype="multipart/form-data">
            <div class="row">
                <!-- البيانات الشخصية -->
                <div class="col-md-6">
                    <h5 class="border-bottom pb-2 mb-3">البيانات الشخصية</h5>
                    
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label for="first_name" class="form-label">الاسم الأول <span class="text-danger">*</span></label>
                            <input type="text" class="form-control" id="first_name" name="first_name" value="<?php echo $coach['first_name']; ?>" required>
                        </div>
                        <div class="col-md-6">
                            <label for="last_name" class="form-label">الاسم الأخير <span class="text-danger">*</span></label>
                            <input type="text" class="form-control" id="last_name" name="last_name" value="<?php echo $coach['last_name']; ?>" required>
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label for="birth_date" class="form-label">تاريخ الازدياد</label>
                        <input type="date" class="form-control" id="birth_date" name="birth_date" value="<?php echo $coach['birth_date']; ?>">
                    </div>
                    
                    <div class="mb-3">
                        <label for="specialization" class="form-label">التخصص <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" id="specialization" name="specialization" value="<?php echo $coach['specialization']; ?>" required>
                    </div>
                    
                    <div class="mb-3">
                        <label for="id_card" class="form-label">رقم البطاقة الوطنية</label>
                        <input type="text" class="form-control" id="id_card" name="id_card" value="<?php echo $coach['id_card']; ?>">
                    </div>
                    
                    <div class="mb-3">
                        <label for="photo" class="form-label">الصورة الشخصية</label>
                        <?php if (!empty($coach['photo'])): ?>
                            <div class="mb-2">
                                <img src="<?php echo SITE_URL . '/uploads/coaches/' . $coach['photo']; ?>" alt="الصورة الحالية" class="img-thumbnail" style="max-height: 100px;">
                                <p class="small text-muted">الصورة الحالية</p>
                            </div>
                        <?php endif; ?>
                        <input type="file" class="form-control" id="photo" name="photo" accept="image/*">
                        <small class="text-muted">الحد الأقصى للحجم: <?php echo MAX_UPLOAD_SIZE / 1024 / 1024; ?> ميجابايت. الصيغ المدعومة: JPG, PNG, GIF</small>
                    </div>
                </div>
                
                <!-- معلومات الاتصال والعمل -->
                <div class="col-md-6">
                    <h5 class="border-bottom pb-2 mb-3">معلومات الاتصال والعمل</h5>
                    
                    <div class="mb-3">
                        <label for="phone" class="form-label">رقم الهاتف <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" id="phone" name="phone" value="<?php echo $coach['phone']; ?>" required>
                    </div>
                    
                    <div class="mb-3">
                        <label for="email" class="form-label">البريد الإلكتروني</label>
                        <input type="email" class="form-control" id="email" name="email" value="<?php echo $coach['email']; ?>">
                    </div>
                    
                    <div class="mb-3">
                        <label for="address" class="form-label">العنوان</label>
                        <textarea class="form-control" id="address" name="address" rows="2"><?php echo $coach['address']; ?></textarea>
                    </div>
                    
                    <div class="mb-3">
                        <label for="hire_date" class="form-label">تاريخ التعيين</label>
                        <input type="date" class="form-control" id="hire_date" name="hire_date" value="<?php echo $coach['hire_date']; ?>">
                    </div>
                    
                    <div class="mb-3">
                        <label for="salary" class="form-label">الراتب الشهري (درهم)</label>
                        <input type="number" step="0.01" min="0" class="form-control" id="salary" name="salary" value="<?php echo $coach['salary']; ?>">
                    </div>
                    
                    <div class="mb-3">
                        <label for="status" class="form-label">الحالة</label>
                        <select class="form-select" id="status" name="status">
                            <option value="active" <?php echo ($coach['status'] === 'active') ? 'selected' : ''; ?>>نشط</option>
                            <option value="inactive" <?php echo ($coach['status'] === 'inactive') ? 'selected' : ''; ?>>غير نشط</option>
                        </select>
                    </div>
                </div>
                
                <!-- الفئات والملاحظات -->
                <div class="col-12 mt-4">
                    <h5 class="border-bottom pb-2 mb-3">الفئات التي يدربها</h5>
                    
                    <div class="mb-3">
                        <div class="row">
                            <?php foreach ($categories as $category): ?>
                                <div class="col-md-3 mb-2">
                                    <div class="form-check">
                                        <input class="form-check-input" type="checkbox" name="categories[]" value="<?php echo $category['id']; ?>" id="category_<?php echo $category['id']; ?>" <?php echo (in_array($category['id'], $selectedCategories)) ? 'checked' : ''; ?>>
                                        <label class="form-check-label" for="category_<?php echo $category['id']; ?>">
                                            <?php echo $category['name']; ?>
                                        </label>
                                    </div>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label for="notes" class="form-label">ملاحظات</label>
                        <textarea class="form-control" id="notes" name="notes" rows="3"><?php echo $coach['notes']; ?></textarea>
                    </div>
                </div>
            </div>
            
            <div class="mt-4 text-center">
                <button type="submit" class="btn btn-primary btn-lg px-5">
                    <i class="fas fa-save me-2"></i> حفظ التغييرات
                </button>
            </div>
        </form>
    </div>
</div>

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