# نموذج المهام والتشغيل اليومي

## الارتباط

كل مهمة تتبع مشروعًا، ويمكن ربطها اختياريًا بعنصر WBS ونشاط ومهمة رئيسية. المسؤولون والمشاركون يجب أن يكونوا أعضاء فعالين في فريق المشروع.

## الحالات

الحالات محفوظة في `task_statuses` والانتقالات المسموحة في `task_status_transitions`. الانتقال يملك صلاحية مطلوبة وخيار إلزام التعليق، لذلك يمكن تعديل دورة العمل من البيانات دون توزيع شروط الحالة على الواجهات.

## Original / Current / Actual

- `original_start_date` و`original_due_date` يثبتان عند إنشاء المهمة.
- `current_start_date` و`current_due_date` يمثلان الخطة التشغيلية الحالية.
- `actual_start_date` يثبت عند بدء التنفيذ و`actual_finish_date` عند الإكمال.
- كل انتقال حالة يحفظ في `task_status_history` مع الإنجاز قبل وبعد والتعليق والمنفذ.

## طرق الإنجاز

- `manual`: إدخال مباشر من 0 إلى 100.
- `checklist`: عدد البنود المكتملة ÷ جميع البنود.
- `subtasks`: متوسط تقدم المهام الفرعية باستخدام `task_weight`.

عند تفعيل `sync_activity_progress` تجمع المهام المرتبطة بالنشاط باستخدام أوزانها، ثم يتحدث تقدم النشاط وWBS والمشروع وتُحفظ لقطة التقدم.

## التنبيهات والمرفقات

ينشئ النظام تنبيهات عند الإسناد والتعليق وتغيير الحالة. ينشئ `bin/task-reminders.php` تنبيهات الاستحقاق والتأخير مرة واحدة يوميًا لكل مهمة ومستلم. تحفظ المرفقات في التخزين الخاص ويُتحقق من صلاحية المهمة قبل التنزيل مع تسجيل عملية الوصول.
