# تحديث: اختيار المجموعات المتعددة في شاشة التسجيلات

## التاريخ
9 يناير 2026

## الوصف
تم تعديل شاشة التسجيلات (Enrollments) لدعم اختيار مجموعات متعددة مع اختيار الكورسات التابعة لها تلقائياً.

## التغييرات

### 1. حقل المجموعات (groups)
- **نوع الحقل**: Select متعدد الاختيار (Multiple)
- **الوظيفة**: 
  - اختيار مجموعة واحدة أو أكثر
  - عند اختيار المجموعات، يتم اختيار الكورسات التابعة لها تلقائياً
  - يتم حساب إجمالي السعر من جميع الكورسات المختارة
  - يمكن إضافة كورسات إضافية يدوياً

### 2. حقل المجموعة الأساسية (group_id)
- **نوع الحقل**: Select فردي الاختيار
- **الوظيفة**:
  - اختيار المجموعة الأساسية من بين المجموعات المختارة
  - هذا الحقل مطلوب (required)
  - يظهر فقط المجموعات التي تم اختيارها في حقل "المجموعات"

### 3. حقل الكورسات (courses)
- **التحديث**:
  - يتم ملؤه تلقائياً عند اختيار المجموعات
  - يمكن إضافة كورسات إضافية يدوياً
  - يتم الاحتفاظ بالكورسات المختارة يدوياً حتى عند إلغاء المجموعات

## سير العمل

1. **اختيار المجموعات**:
   - يختار المستخدم مجموعة أو أكثر من حقل "المجموعات"
   - تظهر جميع المجموعات النشطة مع أسماء كورساتها

2. **الاختيار التلقائي للكورسات**:
   - عند اختيار المجموعات، يتم استخراج IDs الكورسات التابعة لها
   - يتم دمجها مع أي كورسات تم اختيارها يدوياً
   - يتم حساب الإجمالي تلقائياً

3. **اختيار المجموعة الأساسية**:
   - من بين المجموعات المختارة، يختار المستخدم المجموعة الأساسية
   - هذا الحقل مطلوب ويُحفظ في قاعدة البيانات

4. **المعالجة عند الحفظ**:
   - يتم حذف حقل "groups" (للعرض فقط)
   - يتم حفظ "group_id" (المجموعة الأساسية)
   - يتم ربط جميع الكورسات مع التسجيل في الجدول الوسيط

## الملفات المعدلة

1. **EnrollmentForm.php**
   - `app/Filament/Admin/Resources/Enrollments/Schemas/EnrollmentForm.php`
   - إضافة حقل "groups" متعدد الاختيار
   - تعديل حقل "group_id" ليصبح معتمداً على "groups"
   - إضافة منطق اختيار الكورسات التلقائي

2. **CreateEnrollment.php**
   - `app/Filament/Admin/Resources/Enrollments/Pages/CreateEnrollment.php`
   - إضافة حذف حقل "groups" قبل الحفظ في `mutateFormDataBeforeCreate`

3. **EditEnrollment.php**
   - `app/Filament/Admin/Resources/Enrollments/Pages/EditEnrollment.php`
   - إضافة تحميل المجموعات المطابقة في `mutateFormDataBeforeFill`
   - إضافة حذف حقل "groups" قبل الحفظ في `mutateFormDataBeforeSave`

## المميزات

✅ اختيار مجموعات متعددة
✅ اختيار تلقائي للكورسات التابعة للمجموعات
✅ إمكانية إضافة كورسات يدوياً
✅ حساب تلقائي للإجمالي
✅ الحفاظ على الكورسات المختارة يدوياً عند إلغاء المجموعات
✅ تحديث تلقائي للمبلغ المتبقي
✅ دعم التعديل مع تحميل المجموعات الصحيحة

## ملاحظات

- حقل "groups" للعرض والاختيار فقط (UI only) - لا يُحفظ في قاعدة البيانات
- حقل "group_id" هو الذي يُحفظ في قاعدة البيانات كمجموعة أساسية
- يتم حفظ جميع الكورسات في جدول `enrollment_courses` الوسيط
