# AZVYRA — التوثيق الكامل للمنصة

> الإصدار **2.0** · آخر تحديث **2026-11-06**

> منصة **AZVYRA** · مؤسسها ومدربها الرئيسي **كابتن عبدالعزيز الغامدي** · تطوير **BYTE ON**

---

## المحتويات

### البداية
- نطاق الوثيقة وافتراضات المشروع
- نظرة عامة على المنصة
- رحلة المتدرب خطوة بخطوة
- الأدوار والصلاحيات
- الموقع وصفحة الهبوط
- التسجيل والدخول
- الاستبيان الأولي
- لوحة تحكم الأدمن
- الجرس والتنبيهات

### إدارة المتدربين
- طلبات التسجيل والموافقة
- المتدربون وملفاتهم
- الباقات والاشتراكات
- الدفع الإلكتروني والفواتير

### البرامج التدريبية والغذائية
- مكتبة التمارين
- البرامج التدريبية
- التغذية والسعرات
- القياسات والصور والتقدم
- العادات اليومية
- المتابعة والتقييم الأسبوعي

### تجربة المتدرب
- لوحة المتدرب
- تطبيق الجوال

### التواصل
- الدردشة
- الاجتماعات (Google Meet)
- الإشعارات والتذكيرات
- المساعد الذكي

### الأداء والتقارير
- الإحصائيات وربط Google Sheets
- صفحة التقارير
- سجل النشاط (Activity Log)
- تتبع الصفحات والفيديو

### إدارة النظام
- المستخدمون والفريق
- الإعدادات
- المحتوى والموقع (CMS)
- الأمان والخصوصية والامتثال
- الأداء والجودة

### المرجع التقني
- البنية التقنية
- نموذج البيانات
- الـ API
- التكاملات الخارجية
- خارطة التنفيذ والمراحل
- أسئلة مفتوحة للعميل
- سجل التحديثات

### الملاحق
- ما أُضيف على المتطلبات الأصلية
- قواعد تشغيل ملزمة

---

# البداية

> تعرّف على المنصة، الأدوار، رحلة المتدرب، والتسجيل.

## نطاق الوثيقة وافتراضات المشروع

> ما يشمله الإصدار الأول وما يحتاج اعتمادًا منفصلًا: النطاق، الافتراضات، وحدود المسؤولية.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

هذه الوثيقة تصف **منصة واحدة بعلامة تجارية لمدرب رئيسي واحد** في الإصدار الأول، مع قابلية إضافة مدربين مساعدين وأخصائيي تغذية. لا يُفترض أن المنتج SaaS متعدد العملاء في الإصدار الأول إلا إذا اعتمد العميل ذلك صراحة.

- **الويب:** الموقع العام، التسجيل، لوحات الإدارة والمدرب والمتدرب.
- **الجوال:** تطبيق iOS وAndroid يستهلك Laravel REST API؛ لا تُنشأ قواعد بيانات منفصلة للتطبيق.
- **مصدر البيانات:** قاعدة بيانات المنصة هي المرجع النهائي. Google Sheets قناة عرض/تصدير ومزامنة، وليست قاعدة تشغيل مستقلة.
- **القرارات التجارية:** الأسعار، محتوى الباقات، سياسة الاسترجاع، عدد الجلسات، وأهلية التجديد تعتمد كتابيًا من العميل.
- **القرارات القانونية:** سياسات الخصوصية والضرائب والفوترة الإلكترونية وشروط متاجر التطبيقات تحتاج مراجعة مختص مختص قبل الإطلاق؛ التوثيق لا يُعد رأيًا قانونيًا.
- **البيانات الصحية:** تُعامل كبيانات حساسة، ويُطبّق مبدأ أقل صلاحية وأقل قدر من البيانات اللازمة.

### ما يدخل في النطاق وما يحتاج اعتمادًا منفصلًا

| العنصر | الوضع |
|---|---|
| موقع تعريفي وصفحة هبوط وCMS | ضمن النطاق |
| تسجيل المتدرب والاستبيان ومراجعة الأدمن | ضمن النطاق |
| إدارة الباقات والاشتراكات والدفع | ضمن النطاق بعد اختيار مزود الدفع |
| البرامج الرياضية والغذائية والمتابعة | ضمن النطاق |
| الدردشة والإشعارات وGoogle Meet وGoogle Sheets | ضمن النطاق مع اعتماد الحسابات والصلاحيات |
| تطبيق iOS وAndroid | مرحلة مستقلة بعد تثبيت API وتجربة الويب |
| متجر مكملات أو بيع منتجات | خارج النطاق الحالي |
| أجهزة InBody وWearables والتكاملات الصحية | مرحلة لاحقة حسب توفر API وموافقة العميل |
| SaaS لعدة مدربين مستقلين | قرار معماري وتجاري منفصل |

---

## نظرة عامة على المنصة

> المنصة في لمحة: المكوّنات، ما تفعله، ولمن صُمّمت — من استقبال المتدرب حتى التقارير.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية · المتدرب

AZVYRA منصة متكاملة تنقل عمل المدرب من الواتساب والجداول المتفرقة إلى مكان واحد منظّم: من استقبال المتدرب الجديد، إلى الاشتراك، إلى الخطة، إلى المتابعة اليومية، إلى التقارير.

**ما تفعله المنصة:**
- تعرّف بالمدرب وخدماته في صفحة هبوط احترافية وتستقبل المتدربين الجدد.
- تجمع بيانات المتدرب وأهدافه وحالته الصحية عبر استبيان أولي.
- تتيح للأدمن مراجعة الطلب والموافقة عليه وتحديد الباقة والبرنامج.
- تقدّم للمتدرب لوحة متكاملة: تمارينه، وجباته، سعراته، قياساته، وتقدّمه.
- توفّر دردشة واجتماعات (Google Meet) وتذكيرات تلقائية.
- تضيف مساعدًا ذكيًا يحلّل الأرقام ويقترح الخطوات التالية.
- تعطي الأدمن رؤية كاملة: إحصائيات، تقارير، سجل نشاط، وتنبيهات الاشتراكات.

**المكوّنات:**

| المكوّن | التقنية | المستخدمون |
|---|---|---|
| الموقع + لوحة الويب | Laravel | الجميع |
| تطبيق الجوال | Flutter (أو React Native) | المتدرب + المدرب |
| الـ API | Laravel REST | التطبيق + الويب |
| المهام الخلفية | Laravel Queue + Scheduler | النظام |

---

## رحلة المتدرب خطوة بخطوة

> من أول زيارة حتى التجديد، مع حالات الحساب والاشتراك في كل خطوة.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · المتدرب · المدرب المساعد

1. **زيارة صفحة الهبوط** — يتعرّف الزائر على المدرب والبرامج والنتائج، ويقرأ الباقات والأسئلة الشائعة، ثم يصل إلى زر «ابدأ الآن». الهدف هنا طمأنة الزائر قبل التسجيل.
2. **إنشاء حساب** — بريد إلكتروني أو رقم جوال مع رمز OTP، أو دخول اجتماعي. يُنشأ الحساب بحالة pending_questionnaire، ويُرسَل رابط التحقق، وتُسجَّل موافقة الشروط والخصوصية.
3. **الاستبيان الأولي** — أسئلة الهدف والخبرة والصحة والتغذية والنوم. حفظ تلقائي لكل قسم، وأسئلة إلزامية، وعلامة «مراجعة طبية» عند وجود إجابات تستدعي ذلك.
4. **مراجعة الأدمن** — يظهر الطلب في طابور الأدمن مع ملخص الاستبيان. يمكن طلب معلومات إضافية أو رفض الطلب بسبب مكتوب يصل للمتدرب.
5. **الموافقة وتحديد الباقة** — يعتمد الأدمن الباقة والسعر وتاريخ البداية، ويُسند المدرب وأخصائي التغذية، ثم تُنشأ الفاتورة وتُرسل للمتدرب.
6. **الدفع** — بوابة دفع سعودية أو تحويل بنكي. عند نجاح الدفع يُفعّل الاشتراك تلقائيًا وتُصدر الفاتورة الضريبية، وقد يحتاج الدفع اليدوي إلى تأكيد.
7. **تفعيل الاشتراك** — تتحول الحالة إلى active، وتُفتح الخطة والتمارين والتغذية والدردشة، ويظهر للمتدرب إرشاد قصير داخل اللوحة.
8. **لوحة المتدرب والخطة** — بطاقات اليوم: تمرين، وجبات، ماء، خطوات، اجتماع، وتنبيه الاشتراك. خطة المدرب والخطة الغذائية، مع شرح كل تمرين قبل تنفيذه.
9. **متابعة وتقارير** — يسجّل المتدرب المجموعات والوجبات والقياسات، ويجيب التقييم الأسبوعي. يرى المدرب الالتزام ويعدّل الخطة، وتُحدَّث مؤشرات التقدم.
10. **تجديد** — تنبيه قبل الانتهاء بـ 7 أيام ثم 3 أيام ثم يوم. بعد الانتهاء يصبح الحساب expired: يبقى السجل والتقارير، وتُقفل الخطة والدردشة حتى التجديد.

> **ملاحظة — ملاحظة**
>
> قرار الأدمن قد يكون موافقة، أو طلب معلومات إضافية، أو رفضًا مع سبب يصل للمتدرب. ويمكن أن يعود الطلب للتعديل قبل اعتماده.

## المسار الكامل خطوة بخطوة

| # | الخطوة | الدور | ما يحدث في النظام | النتيجة |
|---|---|---|---|---|
| 1 | يزور الموقع ويقرأ عن المدرب | زائر | تتبّع زيارة، عرض الباقات، زر «ابدأ الآن» | يبدأ التسجيل |
| 2 | ينشئ حسابًا | زائر | إنشاء مستخدم + إرسال OTP + حفظ الشروط | `pending_questionnaire` |
| 3 | يجيب الاستبيان | متدرب | حفظ تلقائي، تحقق من الإلزامي، فحص طبي | `pending_review` |
| 4 | يصل إشعار للأدمن | النظام | إشعار + ظهور الطلب في الطابور | الطلب جاهز للمراجعة |
| 5 | يراجع الأدمن ويقرر | أدمن | موافقة / طلب معلومات / رفض بسبب | `approved_unpaid` أو `needs_info` |
| 6 | يدفع المتدرب | متدرب | فاتورة، بوابة دفع، تحقق من العملية | `active` بعد نجاح الدفع |
| 7 | يُفعّل الاشتراك | النظام | فتح الصلاحيات + إشعار ترحيب | خطة ولوحة متاحة |
| 8 | يستخدم المنصة يوميًا | متدرب | تسجيل تمارين ووجبات وقياسات | بيانات وتقدّم متراكم |
| 9 | يتابع المدرب ويعدّل | مدرب | ملاحظات + نسخة خطة جديدة | خطة محدّثة |
| 10 | يقترب الانتهاء ثم يجدد | النظام + متدرب | تنبيهات 7/3/1 + فاتورة تجديد | استمرار الاشتراك |

## التوقيت المتوقع لكل مرحلة

| المرحلة | التوقيت المستهدف | المسؤول |
|---|---|---|
| إنشاء الحساب | فوري | النظام |
| تعبئة الاستبيان | 10–15 دقيقة | المتدرب |
| مراجعة الأدمن | خلال 24 ساعة عمل | الأدمن |
| إصدار الفاتورة والدفع | فوري، أو يوم عمل للتحويل البنكي | المتدرب + النظام |
| تفعيل الاشتراك | فوري بعد تأكيد الدفع | النظام |
| إعداد الخطة الأولى | خلال 48 ساعة | المدرب + أخصائي التغذية |
| التقييم الأسبوعي | كل 7 أيام | المتدرب + المدرب |
| التجديد | قبل 7 أيام من الانتهاء | النظام + المتدرب |

## ماذا يحدث خلف الكواليس

- **الطلب ليس اشتراكًا:** الطلب يعيش في طابور المراجعة، والاشتراك يبدأ فقط بعد الموافقة والدفع.
- **كل انتقال حالة مسجّل:** تُكتب الحالة القديمة والجديدة والمنفّذ والوقت في سجل النشاط.
- **الإشعارات مرتبطة بالحدث:** إنشاء الطلب، الموافقة، الفاتورة، نجاح الدفع، اقتراب الانتهاء، والتجديد.
- **الصلاحيات تتبع الحالة:** الحساب `expired` يقرأ السجل والتقارير فقط، ولا يفتح الخطة الجارية أو الدردشة.
- **الخطة لها إصدار:** أي تعديل من المدرب ينشئ نسخة جديدة، ويبقى السجل السابق للمراجعة.

**حالات حساب المتدرب:**

| الحالة | المعنى |
|---|---|
| `pending_questionnaire` | سجّل ولم يكمل الاستبيان |
| `pending_review` | أكمل الاستبيان وينتظر قرار الأدمن |
| `needs_info` | طلب الأدمن معلومات إضافية |
| `rejected` | رُفض الطلب (مع السبب) |
| `approved_unpaid` | وُوفق عليه وينتظر الدفع |
| `active` | اشتراك فعّال |
| `expiring` | بقي على انتهاء اشتراكه 7 أيام أو أقل |
| `expired` | انتهى الاشتراك (يُقيَّد الوصول للخطة ويبقى السجل) |
| `paused` | اشتراك مجمّد |
| `suspended` | حساب موقوف من الأدمن |

> **تحذير — ثلاث دورات حياة منفصلة**
>
> لا تخلط بين حالة الحساب وحالة طلب التسجيل وحالة الاشتراك في حقل واحد. لكل منها دورة حياة مستقلة؛ راجع قواعد التشغيل الملزمة.

---

## الأدوار والصلاحيات

> خمسة أدوار، ولكل دور ما يراه وما يستطيع فعله. جدول الصلاحيات الكامل وقاعدة أقل صلاحية.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية · المتدرب · مالك المنصة التقنية

لكل شخص دور رئيسي واحد. تُدار الصلاحيات بحزمة `spatie/laravel-permission`، ويمكن للأدمن تخصيص صلاحيات المدرب المساعد.

| الصلاحية | مالك المنصة التقنية | الأدمن/المدرب الرئيسي | مدرب مساعد | أخصائي تغذية | متدرب |
|---|:-:|:-:|:-:|:-:|:-:|
| إعدادات البنية التقنية العامة | ✅ | محدود بإعدادات حسابه | ❌ | ❌ | ❌ |
| الموافقة على طلبات التسجيل | ❌ | ✅ | ❌ | ❌ | ❌ |
| إدارة باقات المدرب وأسعاره | ❌ | ✅ | ❌ | ❌ | ❌ |
| رؤية ملفات المتدربين | ❌ | ✅ | المعيّنون له | المعيّنون له | ملفه فقط |
| بناء البرامج التدريبية | ❌ | ✅ | ✅ | ❌ | ❌ |
| بناء الخطط الغذائية | ❌ | ✅ | ❌ | ✅ | ❌ |
| الدردشة | ❌ | ✅ | ✅ | ✅ | مع مدربه |
| التقارير الكاملة | ❌ | ✅ | لمتدربيه | لمتدربيه | تقريره فقط |
| سجل نشاط مساحة المدرب | ❌ | ✅ | حسب الصلاحية | حسب الصلاحية | نشاطه الشخصي فقط |
| تتبع الصفحات والفيديو | ❌ | ✅ | ❌ | ❌ | ❌ |
| فواتير المتدربين ومدفوعاتهم | ❌ | ✅ | ❌ | ❌ | فواتيره |
| المساعد الذكي | ❌ | ✅ | ✅ | ✅ | ✅ (بقيود) |
| تسجيل بياناته اليومية | — | — | — | — | ✅ |

> **قاعدة عامة:** المتدرب لا يرى إلا بياناته، والمدرب المساعد/أخصائي التغذية لا يرى إلا المتدربين المعيّنين وبحدود اختصاصه. مالك المنصة التقنية يدير البنية والتكاملات ولا يطّلع افتراضيًا على بيانات المتدربين أو بياناتهم الصحية. أي وصول دعم استثنائي — إن سُمح به تعاقديًا — يكون مؤقتًا ومبررًا وبموافقة موثقة وسجل تدقيق. كل عملية حسّاسة تُسجَّل.

---

## الموقع وصفحة الهبوط

> صفحة الهبوط وأقسامها، المحتوى ثنائي اللغة، SEO، والتتبع التسويقي.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي

الواجهة العامة التي يراها الزائر قبل التسجيل. تُدار كاملة من لوحة الأدمن (انظر المحتوى والموقع).

**الأقسام:**

| القسم | المحتوى |
|---|---|
| الهيرو | عنوان رئيسي، صورة/فيديو المدرب، زر «ابدأ الآن» وزر «تحميل التطبيق» |
| من هو المدرب | نبذة، خبرات، شهادات ومؤهلات |
| عن المنصة | ماذا تقدّم وكيف تعمل (4 خطوات مبسّطة) |
| الخدمات والبرامج | تمارين، تغذية، متابعة، برامج كمال الأجسام… |
| قبل وبعد | نتائج المتدربين (بموافقتهم الكتابية فقط) |
| الباقات والأسعار | شهري / 3 شهور / سنوي بالريال السعودي |
| آراء المتدربين | تقييمات وشهادات |
| الأسئلة الشائعة | FAQ قابل للتعديل |
| روابط التطبيق | App Store / Google Play (أزرار وQR) |
| التواصل والسوشيال | إنستغرام، تيك توك، سناب، X، يوتيوب، واتساب |
| التذييل | الشروط، الخصوصية، سياسة الاسترجاع |

**المتطلبات:**
- عربي (RTL) وإنجليزي مع مبدّل لغة.
- متجاوب بالكامل ويعمل جيدًا على الجوال.
- SEO: عناوين وأوصاف لكل صفحة، Open Graph، ملف `sitemap.xml`.
- سرعة تحميل عالية (صور مضغوطة بصيغة WebP، تحميل كسول).
- بكسلات التتبع (Google Analytics, Meta Pixel, TikTok Pixel) قابلة للتفعيل من الإعدادات، مع موافقة الكوكيز.

---

## التسجيل والدخول

> التسجيل بالبريد أو OTP، الدخول الاجتماعي، 2FA، وإدارة الجلسات والأجهزة.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · المتدرب

**طرق التسجيل:**
- البريد الإلكتروني + كلمة المرور.
- رقم الجوال + رمز تحقق OTP (SMS أو واتساب) — **موصى به للسوق السعودي**.
- الدخول بحساب Google وApple (إلزامي في iOS إذا وُجد دخول اجتماعي).

**الحقول:** الاسم الكامل، الجوال (+966)، البريد، كلمة المرور، الموافقة على الشروط والخصوصية.

**الدخول:** نموذج واحد لكل الأدوار، والتوجيه بعد الدخول حسب الدور.

**الميزات:**
- استعادة كلمة المرور بالبريد أو OTP.
- التحقق من البريد/الجوال.
- المصادقة الثنائية (2FA) اختيارية للمتدرب، **إلزامية للأدمن**.
- حدّ لمحاولات الدخول الفاشلة (Rate Limit) مع قفل مؤقت.
- إدارة الجلسات والأجهزة وإنهاء الجلسات من «حسابي».

---

## الاستبيان الأولي

> الاستبيان الأولي بأقسامه، قواعد الحفظ التلقائي، وعلامة المراجعة الطبية.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · المتدرب

يظهر مباشرة بعد إنشاء الحساب ولا يمكن الانتقال لغيره قبل إكماله. يُحفظ تلقائيًا بعد كل خطوة (يمكن العودة لاحقًا).

**أقسام الاستبيان:**

| القسم | أمثلة الأسئلة |
|---|---|
| **البيانات الأساسية** | العمر، الجنس، الطول، الوزن، المدينة |
| **الهدف** | خسارة وزن · بناء عضلات · تنشيف · لياقة عامة · تأهيل · تحضير لبطولة |
| **الهدف الرقمي** | الوزن المستهدف، المدة المتوقعة |
| **الخبرة التدريبية** | مبتدئ / متوسط / متقدم، سنوات التمرين |
| **جدول التمرين** | عدد الأيام أسبوعيًا، مدة الجلسة، مكان التمرين (نادي/منزل)، المعدات المتاحة |
| **نمط الحياة** | طبيعة العمل، ساعات النوم، مستوى النشاط اليومي |
| **التغذية** | عدد الوجبات، الحساسية الغذائية، الأطعمة المفضلة والمكروهة، نظام غذائي خاص |
| **الحالة الصحية (PAR-Q)** | أمراض مزمنة، أدوية، إصابات سابقة، جراحات، هل نُصحت بتجنّب الرياضة |
| **المكمّلات** | ما يستخدمه حاليًا |
| **صور البداية** (اختياري) | أمامية/جانبية/خلفية |
| **البرنامج المطلوب** | تمارين · تغذية · متابعة · الكل |
| **الباقة المفضّلة** | شهري / 3 شهور / سنوي |
| **كيف عرفت عنّا؟** | قناة التسويق (للإحصاء) |

**قواعد:**
- نوع الأسئلة: اختيار واحد، اختيار متعدد، رقم، نص، رفع صورة.
- الأسئلة قابلة للتعديل من الأدمن (إضافة/حذف/ترتيب/إلزامية) دون برمجة.
- **الحالة الصحية:** إذا أجاب بنعم على أسئلة معيّنة، يُعلَّم الطلب بعلامة «يحتاج مراجعة طبية» ويظهر تنبيه واضح للأدمن.
- **إقرار وموافقة:** يقرّ المتدرب بصحة المعلومات وأن البرنامج لا يغني عن استشارة الطبيب، ويوافق على معالجة بياناته الصحية.
- بعد الإرسال: رسالة «تم استلام طلبك، سنراجعه خلال X ساعة».

---

## لوحة تحكم الأدمن

> أول صفحة بعد الدخول: بطاقات الأرقام، آخر الطلبات، اجتماعات اليوم، والتنبيهات.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي

أول صفحة بعد الدخول: عملك في لمحة.

**بطاقات الأرقام:**

| البطاقة | التفصيل |
|---|---|
| طلبات جديدة | عدد الطلبات بانتظار المراجعة (رابط مباشر) |
| الاشتراكات الفعّالة | العدد الحالي |
| اشتراكات جديدة | هذا الأسبوع / هذا الشهر |
| تنتهي قريبًا | خلال 7 أيام (مع زر تجديد) |
| انتهت | تحتاج متابعة |
| الإيرادات | اليوم / الشهر / مقارنة بالسابق |
| متدربون غير نشطين | لم يسجّلوا أي نشاط منذ 5 أيام |
| رسائل غير مقروءة | من المتدربين |

**الأقسام:**
- **آخر الطلبات:** جدول سريع مع «مراجعة».
- **اجتماعات اليوم والغد:** من Google Meet.
- **رسوم بيانية:** نمو المتدربين، الإيرادات، توزيع الباقات، توزيع الأهداف.
- **تنبيهات الانتباه:** متدرب لم يلتزم، فاتورة معلّقة، طلب بحالة صحية.
- **آخر النشاط:** أحدث 10 أحداث من سجل النشاط.
- **إجراءات سريعة:** متدرب جديد · برنامج جديد · إرسال إشعار · اجتماع.

---

## الجرس والتنبيهات

> الجرس يجمع ما يخصّك من أحداث، مع القنوات والتصفية وتعليم الكل كمقروء.

**التصنيف:** البداية · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية

الجرس في الشريط العلوي يجمع ما يخصّك. تُرسل عبر: داخل المنصة (Database) + Push (FCM) + بريد + واتساب (اختياري حسب النوع).

**تنبيهات الأدمن:**

| الحدث | القناة |
|---|---|
| متدرب جديد سجّل | جرس + بريد |
| متدرب أنهى الاستبيان | جرس + Push + بريد |
| طلب بحالة صحية حساسة | جرس + Push |
| دفعة ناجحة / فاشلة | جرس + بريد |
| تحويل بنكي بانتظار التأكيد | جرس + Push |
| اشتراك ينتهي خلال 7 / 3 / 1 يوم | جرس + بريد |
| اشتراك انتهى | جرس |
| رسالة جديدة من متدرب | جرس + Push |
| متدرب متوقف عن التسجيل | جرس (ملخص يومي) |
| متدرب حقّق هدفه | جرس |
| تقييم / شكوى جديدة | جرس |

الأرقام بجانب عناصر القائمة الجانبية تعدّ الجديد في كل صفحة. زر «تعليم الكل كمقروء» وتصفية حسب النوع.

---

# إدارة المتدربين

> الطلبات، الملفات، الباقات، الاشتراكات والمدفوعات.

## طلبات التسجيل والموافقة

> مراجعة طلبات التسجيل: قرار بالموافقة أو طلب معلومات أو الرفض، وتحديد الباقة والسعر.

**التصنيف:** إدارة المتدربين · **الأدوار:** الأدمن · المدرب الرئيسي

صفحة تجمع كل من أكمل الاستبيان وينتظر القرار.

**الجدول:** الاسم، الهدف، الباقة المفضّلة، تاريخ الطلب، علامة صحية، الحالة.

**شاشة المراجعة:**
- إجابات الاستبيان كاملة (مقسّمة حسب الأقسام) والصور.
- ملخص تلقائي من المساعد الذكي: «متدرب مبتدئ، هدفه تنشيف، لديه إصابة في الركبة…».
- أزرار القرار:

| القرار | ما يحدث |
|---|---|
| **موافقة** | يختار الأدمن: مدة الاشتراك (شهري/3 شهور/سنوي) + البرامج (تمارين/تغذية/متابعة) + المدرب المسؤول + السعر النهائي أو خصم |
| **طلب معلومات** | رسالة للمتدرب بالنقص المطلوب |
| **رفض** | مع سبب (يُرسَل للمتدرب) |

- عند الموافقة: يصل المتدرب إشعار بعرض الاشتراك ورابط الدفع.
- يمكن إضافة ملاحظة داخلية خاصة بالأدمن.
- **موافقة جماعية** غير متاحة للطلبات الصحية الحساسة.

---

## المتدربون وملفاتهم

> ملف المتدرب بتبويباته وإجراءاته: من البيانات والاشتراك إلى القياسات والنشاط.

**التصنيف:** إدارة المتدربين · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية

**القائمة:** بحث، تصفية (الحالة، الباقة، المدرب، الهدف، تاريخ الانتهاء)، فرز، تصدير CSV.

**ملف المتدرب (تبويبات):**

| التبويب | المحتوى |
|---|---|
| نظرة عامة | بياناته، هدفه، الباقة، المدرب، نسبة الالتزام، نسبة التقدّم نحو الهدف |
| الاستبيان | إجاباته الأصلية (قابلة للتحديث عند الحاجة) |
| الاشتراك | الباقة الحالية والتاريخ، سجل الاشتراكات السابقة |
| البرنامج التدريبي | الخطة الحالية وتاريخ التعديلات |
| الخطة الغذائية | الخطة الحالية والسعرات والماكروز |
| القياسات والصور | الوزن، الطول، محيطات الجسم، صور المقارنة |
| التقدّم | الرسوم البيانية |
| الجلسات | سجل التمارين المنفّذة |
| ملاحظات المدرب | ملاحظات خاصة وأخرى مرئية للمتدرب |
| الدردشة | المحادثة معه |
| الفواتير | مدفوعاته |
| النشاط | سجل نشاطه وزياراته |

**إجراءات:** تعديل البيانات، إيقاف/تفعيل، تجميد الاشتراك، تمديد، تغيير المدرب، إعادة تعيين كلمة المرور، الدخول كمتدرب (Impersonate) — مسجَّلة في سجل النشاط.

---

## الباقات والاشتراكات

> الباقات وأسعارها وحقولها، القسائم، ودورة حياة الاشتراك والتجميد والترقية.

**التصنيف:** إدارة المتدربين · **الأدوار:** الأدمن · المدرب الرئيسي

**الباقات** (يديرها الأدمن بالكامل):

| الحقل | الوصف |
|---|---|
| الاسم (عربي/إنجليزي) | مثال: «الباقة الذهبية» |
| المدة | شهر · 3 شهور · 12 شهرًا (أو مخصّصة) |
| السعر | ريال سعودي، شامل/غير شامل الضريبة |
| سعر العرض | اختياري مع تاريخ انتهاء |
| البرامج المضمّنة | تمارين / تغذية / متابعة أسبوعية / مكالمات Meet / دردشة |
| حدود | عدد جلسات Meet شهريًا، عدد تعديلات الخطة |
| ميزات المساعد الذكي | مفعّل/معطّل أو حد استخدام |
| الحالة | فعّالة / مخفيّة |

**قسائم الخصم:** نسبة أو مبلغ، تاريخ انتهاء، حد استخدام، باقات محدّدة.

**دورة حياة الاشتراك:**

**الحالات:** موافقة الأدمن → بانتظار الدفع → فعّال → قريب الانتهاء → منتهٍ → مجمّد → ملغى

> **ملاحظة — انتقالات مهمة**
>
> التجديد يعيد الحالة إلى «فعّال»، والتجميد يوقف العدّ ويُمدّد تاريخ الانتهاء بعدد أيام التجميد، وانتهاء مهلة الدفع يلغي الطلب تلقائيًا.

**قواعد:**
- التجديد يمدّ من تاريخ الانتهاء الحالي إن كان فعّالًا، ومن تاريخ الدفع إن كان منتهيًا.
- التجميد يمدّ تاريخ الانتهاء بعدد أيام التجميد.
- ترقية الباقة: حساب الفرق (Pro-rata) أو بدء باقة جديدة — قرار الأدمن.
- بعد الانتهاء: يبقى الوصول لسجله وتقاريره (قراءة فقط) ويُقفل بناء/عرض الخطة الجارية.
- مهلة سماح اختيارية (مثلًا 3 أيام).
- التجديد التلقائي ممكن لاحقًا (المرحلة 3) عبر بطاقات محفوظة.

**تنبيهات الانتهاء:** قبل 7، 3، 1 يوم، ويوم الانتهاء — للمتدرب (Push + واتساب/بريد) وللأدمن.

---

## الدفع الإلكتروني والفواتير

> بوابات الدفع السعودية، التحويل البنكي، الفواتير والضريبة والاسترجاع.

**التصنيف:** إدارة المتدربين · **الأدوار:** الأدمن · المدرب الرئيسي · المتدرب

**بوابات الدفع المقترحة (السعودية):** Moyasar أو HyperPay أو Tap — تدعم **مدى، Apple Pay، STC Pay، فيزا/ماستركارد**. ويمكن إضافة **تمارا/تابي** (تقسيط) لاحقًا.

| الطريقة | الآلية |
|---|---|
| بوابة إلكترونية | الدفع من رابط أو من التطبيق، تأكيد تلقائي عبر Webhook |
| تحويل بنكي | المتدرب يرفع إيصال الحوالة، فيؤكدها الأدمن يدويًا |
| دفع نقدي/خارجي | يسجّله الأدمن يدويًا بملاحظة |

**الفواتير:**
- فاتورة تلقائية عند كل دفع: رقم تسلسلي، بيانات العميل، البنود، الضريبة (**ضريبة القيمة المضافة 15%**)، الإجمالي، PDF بالعربية والإنجليزية.
- الرقم الضريبي للمدرب وبياناته من الإعدادات.
- **الفوترة الإلكترونية (ZATCA – فاتورة):** تُنفَّذ المرحلة المطلوبة حسب وضع العميل التجاري (يُحدَّد في الأسئلة المفتوحة) مع رمز QR.
- إشعار دائن عند الاسترجاع.
- المبالغ المستردة: تُسجَّل وتظهر في التقارير.

**التقارير المالية:** الإيرادات حسب الفترة/الباقة/الطريقة، المدفوعات الفاشلة، الاسترجاعات، تصدير CSV/Excel.

> **ملاحظة متجر التطبيقات:** الاشتراكات الرقمية داخل تطبيق iOS قد تخضع لقواعد Apple للدفع داخل التطبيق. الحل الشائع: الدفع من الموقع/الرابط وليس من داخل التطبيق، أو مراجعة بنود الخدمات الشخصية (خدمات تدريب شخصي بين أفراد). **تُراجَع قبل الإطلاق.**

---

# البرامج التدريبية والغذائية

> التمارين، البرامج، التغذية، القياسات، العادات والمتابعة.

## مكتبة التمارين

> قاعدة التمارين: الحقول، الفيديو والخطوات، البدائل، ووسوم الإصابات — وكل تمرين بشرح كامل للمتدرب.

**التصنيف:** البرامج التدريبية والغذائية · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · المتدرب

قاعدة بيانات التمارين التي تُبنى منها البرامج.

| الحقل | الوصف |
|---|---|
| الاسم (عربي/إنجليزي) | مثال: «ضغط الصدر بالبار» |
| العضلة الرئيسية والثانوية | صدر، ظهر، أرجل… |
| نوع التمرين | قوة · كارديو · مرونة · إحماء · تمدد |
| المعدّات | بار، دمبل، جهاز، وزن الجسم، بدون |
| المستوى | مبتدئ / متوسط / متقدم |
| فيديو توضيحي | رفع أو رابط (يوتيوب/Vimeo غير مدرج) |
| صور وخطوات التنفيذ | شرح مكتوب |
| نصائح وأخطاء شائعة | تظهر للمتدرب |
| بدائل | تمرين بديل عند إصابة/عدم توفر المعدات |
| المصاب/الممنوع لـ | وسوم للإصابات (ركبة، كتف، ظهر) |

**ميزات:** بحث وتصفية، استيراد/تصدير CSV، أوسمة، نسخ من مكتبة جاهزة أولية.

## ما يراه المتدرب لكل تمرين

عند فتح أي تمرين من برنامجه، يحصل المتدرب على صفحة شرح كاملة — لا مجرد اسم وعدد تكرارات:

| العنصر | ما يظهر للمتدرب |
|---|---|
| الفيديو | مشغّل داخل الصفحة مع إعادة المشاهدة والتكبير |
| خطوات التنفيذ | خطوات مرقّمة قصيرة مع صورة لكل وضعية رئيسية |
| العضلات المستهدفة | الرئيسية والثانوية مع رسم توضيحي |
| النصائح | 3–5 نقاط تركيز قبل أول مجموعة |
| الأخطاء الشائعة | ما يجب تجنّبه وكيف يُصحَّح |
| البدائل | بديل بنفس الحركة بمعدات أقل أو أكثر |
| السلامة | تنبيه واضح إذا كان التمرين موسومًا بإصابة مسجّلة للمتدرب |
| «أبلغ المدرب» | زر يفتح دردشة مرتبطة بالتمرين عند الألم أو عدم الفهم |

> التمرين لا يظهر في برنامج المتدرب إلا إذا اختاره المدرب أو وُلد من قالب معتمد. وتحديث الشرح أو الفيديو في المكتبة ينعكس على كل البرامج التي تستخدمه.

---

## البرامج التدريبية

> بناء البرامج وأسابيعها وأيامها ومجموعاتها، وقوالب ونسخ وإصدارات الخطة.

**التصنيف:** البرامج التدريبية والغذائية · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · المتدرب

**البنية:** `برنامج` → `أسابيع` → `أيام تدريب` → `تمارين` → `مجموعات (Sets)`.

| المستوى | الحقول |
|---|---|
| البرنامج | الاسم، الهدف، المدة بالأسابيع، المستوى، عدد الأيام أسبوعيًا |
| اليوم | العنوان (صدر وتراي)، الإحماء، التمدد، ملاحظات |
| التمرين في اليوم | عدد المجموعات، التكرارات، الوزن المقترح، الراحة بين المجموعات، Tempo، RPE |
| الخيارات | سوبرست، دروب ست، كارديو (مدة/مسافة/معدل نبض) |

**مصادر البرامج:**
- **قوالب جاهزة:** برنامج تضخيم 4 أيام، تنشيف، لياقة للمبتدئين، منزلي… يُنسخ ويُعدَّل.
- **مخصّص لمتدرب:** يُبنى أو يُنسخ من قالب ويُعدَّل له.
- **توليد بمساعدة الذكاء الاصطناعي:** مسودة تُبنى من الاستبيان ويراجعها المدرب (لا تُرسل للمتدرب قبل اعتماد المدرب).

**على جانب المتدرب:**
- «تمرين اليوم» مع بدء الجلسة.
- تسجيل كل مجموعة: الوزن، التكرارات، الإحساس بالجهد.
- مؤقّت الراحة، مشاهدة فيديو التمرين، تخطّي/استبدال تمرين (يُبلَّغ المدرب).
- إنهاء الجلسة: المدة، تقييم الجلسة، ملاحظة للمدرب.
- **أرقام قياسية (PR)** تُلتقط تلقائيًا مع إشعار تشجيعي.
- تتبع التقدّم لكل تمرين (رسم الوزن عبر الزمن).

**إصدارات الخطة:** كل تعديل يُنشئ إصدارًا جديدًا مع سبب التعديل، ويبقى السابق في السجل.

---

## التغذية والسعرات

> قاعدة الأطعمة السعودية، حاسبة السعرات، الخطط والوجبات والبدائل وقائمة المشتريات.

**التصنيف:** البرامج التدريبية والغذائية · **الأدوار:** الأدمن · المدرب الرئيسي · أخصائي التغذية · المتدرب

**قاعدة الأطعمة:**

| الحقل | الوصف |
|---|---|
| الاسم (عربي/إنجليزي) | مع أطعمة سعودية/خليجية شائعة (كبسة، مندي، تمر، قهوة عربية…) |
| لكل 100 جم | سعرات، بروتين، كارب، دهون، ألياف |
| وحدات التقديم | جرام، حبة، ملعقة، كوب |
| الوسوم | حلال، نباتي، خالٍ من الغلوتين، مسببات حساسية |
| الباركود | (مرحلة لاحقة) |

**حاسبة الاحتياج:** معادلة Mifflin-St Jeor لـ BMR × معامل النشاط، ثم تعديل حسب الهدف (عجز/فائض)، وتوزيع الماكروز (بروتين/كارب/دهون). يمكن للمدرب تجاوز الأرقام يدويًا.

**الخطة الغذائية:**
- أهداف يومية: سعرات، بروتين، كارب، دهون، ماء.
- وجبات (فطور، سناك، غداء، عشاء…) بأطعمة وكميات ومحسوبة تلقائيًا.
- **بدائل** لكل وجبة (استبدال بما يعادل الماكروز).
- مراعاة الحساسية والأطعمة المكروهة من الاستبيان (تنبيه عند تعارض).
- قوالب جاهزة لخطط شائعة (تنشيف، تضخيم، صيام متقطع…).
- أيام مختلفة (تمرين/راحة، أو مرجعية أسبوعية).
- **قائمة مشتريات** تُولَّد تلقائيًا للمتدرب.
- تعديل المكمّلات وجدولها.

**على جانب المتدرب:**
- عرض وجبات اليوم، ووسم «تم تناولها» أو «استبدلت».
- تسجيل وجبة إضافية/خارج الخطة (بحث في قاعدة الأطعمة أو إدخال يدوي).
- شريط السعرات والماكروز المتبقية يوميًا.
- تصوير الوجبة وإرسالها للمدرب (اختياري).
- تسجيل الماء.

**المتابعة:** نسبة الالتزام الغذائي = السعرات الفعلية ÷ المستهدفة، وعدد الأيام الملتزمة.

## من المدرب إلى لوحة المتدرب

1. اختيار قالب أو بناء خطة
2. حساب السعرات والماكروز
3. اعتماد المدرب
4. نشر الخطة
5. تسجيل المتدرب
6. مراجعة أسبوعية

- **البناء:** يبدأ المدرب أو أخصائي التغذية من قالب جاهز أو من الاستبيان، ويعدّل الوجبات والكميات.
- **المراجعة:** تنبيه تلقائي إذا تعارضت الخطة مع حساسية أو طعام مكروه أو هدف غير واقعي.
- **الاعتماد:** لا تظهر الخطة للمتدرب قبل اعتماد المدرب المسؤول.
- **النشر:** تظهر فورًا في لوحة المتدرب والتطبيق مع تذكيرات الوجبات وشريط السعرات المتبقية.
- **التعديل:** كل تعديل ينشئ إصدارًا جديدًا مع سبب، ويبقى السابق في السجل.
- **التسليم:** يمكن مشاركة الخطة كملف PDF أو مزامنتها إلى Google Sheet (ورقة «الخطة الغذائية») أو إرسالها في الدردشة — انظر الإحصائيات وربط Google Sheets.

---

## القياسات والصور والتقدم

> الوزن والمحيطات والدهون وصور التقدّم، والخصوصية الصارمة للصور.

**التصنيف:** البرامج التدريبية والغذائية · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · المتدرب

| النوع | التفصيل |
|---|---|
| **الطول والوزن** | تسجيل دوري (أسبوعي افتراضيًا) |
| **محيطات الجسم** | صدر، خصر، وسط، أرداف، فخذ، ذراع، ساق، رقبة |
| **تركيب الجسم** | نسبة الدهون، كتلة العضلات (إدخال يدوي أو من جهاز InBody) |
| **BMI وتقدير نسبة الدهون** | محسوبة تلقائيًا |
| **صور التقدّم** | أمامي/جانبي/خلفي، مقارنة قبل/بعد جنبًا إلى جنب، خصوصية صارمة |
| **اختبارات الأداء** | أقصى تكرار، زمن الجري… |

**الاستيراد (مرحلة 2):** Apple Health / Google Health Connect للخطوات والنوم والنبض.

**الخصوصية:** الصور مشفّرة وغير عامة، لا تظهر في «قبل وبعد» العام إلا بموافقة صريحة مكتوبة قابلة للسحب.

---

## العادات اليومية

> الماء والنوم والخطوات والمزاج، العادات المخصّصة وسلسلة الالتزام.

**التصنيف:** البرامج التدريبية والغذائية · **الأدوار:** المتدرب · الأدمن · المدرب الرئيسي

تتبّع سريع من لوحة المتدرب:

- **الماء:** هدف يومي مع أزرار +كوب.
- **النوم:** ساعات وجودة.
- **الخطوات:** يدوي أو مزامنة من الصحة.
- **المزاج/الطاقة:** مقياس 1–5.
- **العادات المخصّصة:** يضيفها المدرب (مثل: تناول المكمل، تمدد 10 دقائق).
- **سلسلة الالتزام (Streak):** عدد الأيام المتتالية.
- **تحديات ونقاط ووسام** (تحفيز، مرحلة 3).

---

## المتابعة والتقييم الأسبوعي

> التقييم الأسبوعي، ملاحظات المدرب المرئية والخاصة، والمراجعة الدورية كل 4 أسابيع.

**التصنيف:** البرامج التدريبية والغذائية · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية · المتدرب

**تقييم أسبوعي (Check-in):**
- يُرسَل للمتدرب نموذج قصير نهاية كل أسبوع: الوزن، الجوع، الطاقة، النوم، الالتزام، صور (اختياري)، أسئلة للمدرب.
- يصل المدرب إشعار بكل تقييم جديد.
- يكتب المدرب **رأيه وتعليماته** (نص/صوت/فيديو قصير) فيظهر للمتدرب في لوحته.
- قد يعدّل الخطة مباشرة من شاشة التقييم.

**ملاحظات المدرب:** نوعان — «مرئية للمتدرب» و«خاصة بالفريق».

**التقييم الدوري الشامل:** كل 4 أسابيع، يقارن المنصة تلقائيًا بالقياسات السابقة.

---

# تجربة المتدرب

> لوحة المتدرب وتطبيق الجوال بكل ما يراه المتدرب.

## لوحة المتدرب

> لوحة المتدرب: تمرين اليوم، الوجبات، الماء، التقدّم، رأي المدرب، والاشتراك.

**التصنيف:** تجربة المتدرب · **الأدوار:** المتدرب · الأدمن · المدرب الرئيسي

أول صفحة بعد الدخول لمتدرب ذي اشتراك فعّال.

**بطاقات اليوم:**
- تمرين اليوم (زر «ابدأ»).
- وجبات اليوم وشريط السعرات.
- الماء والخطوات.
- الاجتماع القادم.
- تذكير بانتهاء الاشتراك.
- رسالة أو ملاحظة جديدة من المدرب.

**مؤشرات التقدّم:**

| المؤشر | المعنى |
|---|---|
| الطول | آخر قياس |
| الوزن | الحالي، البداية، الهدف، الفرق |
| BMI | مع التصنيف |
| السعرات | اليوم / المتوسط الأسبوعي |
| ساعات التمرين | هذا الأسبوع / هذا الشهر |
| أيام التمرين | عدد الأيام هذا الشهر مقابل المخطّط |
| نسبة الالتزام | تمارين + تغذية |
| نسبة التقدّم نحو الهدف | محسوبة (انظر التقارير) |
| السلسلة (Streak) | أيام متواصلة |

**الرسوم البيانية:** الوزن، المحيطات، السعرات، ساعات التمرين، الأوزان المرفوعة، الالتزام الأسبوعي.

**رأي المدرب:** بطاقة بارزة بآخر تقييم وتوجيهات المدرب، وسجل سابق للتقييمات.

**صفحات المتدرب:** الرئيسية · برنامجي · تغذيتي · قياساتي وصوري · تقدّمي وتقاريري · الدردشة · اجتماعاتي · اشتراكي وفواتيري · الإشعارات · حسابي.

## دورة المتدرب اليومية

1. الاشتراك
2. التغذية
3. مكتبة التمارين
4. متابعة التمرين
5. خطة المدرب
6. Google Sheet

| المرحلة | ما يراه المتدرب | ما يفعله |
|---|---|---|
| **الاشتراك** | الباقة الحالية، تاريخ التجديد، الفواتير | يجدد أو يحدّث بيانات الدفع |
| **التغذية** | وجبات اليوم، السعرات والماكروز المتبقية، البدائل، الماء | يسجّل الوجبات ويستبدل |
| **مكتبة التمارين** | شرح كل تمرين: فيديو، خطوات، نصائح، أخطاء، بدائل | يشاهد الشرح قبل التنفيذ |
| **متابعة التمارين** | تمرين اليوم، المجموعات، المؤقّت، الأرقام القياسية | يسجّل كل مجموعة وينهي الجلسة |
| **خطة المدرب** | البرنامج والخطة الغذائية المعتمدة وتحديثاتها | يطّلع ويطلب توضيحًا |
| **Google Sheet** | رابط شيت خاص ببياناته | يفتح الشيت للمشاهدة |

> الاشتراك المنتهي يحوّل اللوحة إلى قراءة فقط: يبقى السجل والتقارير متاحين، وتُقفل الخطة الجارية والدردشة حتى التجديد.

---

## تطبيق الجوال

> تطبيق iOS وAndroid: الشاشات، Push، العمل دون إنترنت، والبصمة وحذف الحساب.

**التصنيف:** تجربة المتدرب · **الأدوار:** المتدرب · الأدمن · المدرب الرئيسي · مالك المنصة التقنية

يخدم **المتدرب** بشكل أساسي، ونسخة مبسّطة للمدرب.

**تطبيق المتدرب:**

| الشاشة | الوظيفة |
|---|---|
| الدخول/التسجيل/الاستبيان | كما في الويب |
| الرئيسية | تمرين اليوم، الوجبات، الماء، تذكيرات |
| التمرين | تنفيذ الجلسة، المؤقّت، تسجيل المجموعات، الفيديو |
| التغذية | الوجبات، بحث الأطعمة، السعرات |
| القياسات والصور | إدخال وكاميرا |
| التقدّم | الرسوم والتقارير |
| الدردشة | نص، صور، صوت، ملفات |
| الاجتماعات | قائمة + زر انضمام (Meet) |
| الإشعارات | Push + مركز إشعارات |
| الاشتراك | الحالة والتجديد |
| الحساب | البيانات، اللغة، المظهر، حذف الحساب |

**متطلبات خاصة بالجوال:**
- Push Notifications عبر Firebase (FCM) + APNs.
- يعمل بدون إنترنت لتسجيل التمرين ثم يزامن لاحقًا (Offline-first لجلسة التمرين).
- دعم الوضع الداكن والعربية RTL.
- بصمة/وجه للدخول (Biometric).
- تحديث إجباري/اختياري للإصدارات القديمة.
- **حذف الحساب من داخل التطبيق** (إلزامي في متاجر التطبيقات).
- رابط سياسة الخصوصية والشروط.
- نسخة المدرب: الطلبات الجديدة، الدردشة، المتدربون، التنبيهات، الموافقة السريعة.

---

# التواصل

> الدردشة، الاجتماعات، الإشعارات، والمساعد الذكي.

## الدردشة

> دردشة مباشرة بالنص والصور والصوت، مع الردود الجاهزة وساعات الرد والإشراف.

**التصنيف:** التواصل · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية · المتدرب

دردشة مباشرة بين المتدرب ومدربه (وأخصائي التغذية إن وُجد).

**الميزات:**
- رسائل نصية، صور، ملفات، تسجيل صوتي، فيديو قصير.
- إشعار فوري، حالة «تمت القراءة»، مؤشر «يكتب الآن».
- بحث داخل المحادثة.
- ردود سريعة جاهزة للمدرب (Canned Responses).
- إرفاق تمرين أو وجبة أو قياس داخل الرسالة.
- ساعات الرد (مثلًا 9 ص – 9 م) تظهر للمتدرب ورسالة رد تلقائي خارجها.
- الدردشة مقيَّدة بالاشتراك الفعّال (تتحول لقراءة فقط بعد الانتهاء).
- الأدمن يطّلع على المحادثات للإشراف (مع إشعار في سياسة الخصوصية).
- الإبلاغ عن إساءة، حظر.

**التقنية:** Laravel Reverb (WebSockets) أو Pusher، مع مساعدة FCM للإشعارات خارج التطبيق.

---

## الاجتماعات (Google Meet)

> اجتماعات Google Meet: الإنشاء والتكرار والتذكيرات وسجل الحضور.

**التصنيف:** التواصل · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · المتدرب

**الإنشاء:** يجدولها المدرب أو الأدمن، أو يطلبها المتدرب (فيوافق المدرب).

| الحقل | الوصف |
|---|---|
| العنوان والوصف | مثل: «جلسة متابعة أسبوعية» |
| المشاركون | متدرب/متدربون |
| الموعد والمدة | مع المنطقة الزمنية (Asia/Riyadh) |
| التكرار | أسبوعي، شهري |
| الرابط | يُولَّد تلقائيًا عبر Google Calendar API |

**ما يحدث:**
- إنشاء حدث في Google Calendar مع رابط Meet وإرسال دعوة.
- يظهر الاجتماع في لوحة المتدرب والمدرب مع زر «انضمام».
- تذكير قبل 24 ساعة و1 ساعة و10 دقائق (Push + بريد/واتساب).
- حدود الباقة: عدد الاجتماعات الشهرية.
- إعادة جدولة/إلغاء مع إشعار للطرفين.
- سجل الحضور (انضم/لم ينضم) وملاحظات المدرب بعد الجلسة.
- **ساعات توفّر المدرب:** يعرّف أوقاته فيحجز المتدرب موعدًا فارغًا (Booking).

---

## الإشعارات والتذكيرات

> نظام إشعارات مركزي: القنوات، القوالب، التفضيلات، وساعات الهدوء.

**التصنيف:** التواصل · **الأدوار:** الأدمن · المدرب الرئيسي · المتدرب

نظام مركزي لكل أنواع الإشعارات، يمكن للأدمن تعديل نصوصها وتفعيلها وإيقافها، وللمتدرب ضبط تفضيلاته.

**القنوات:** داخل المنصة · Push · بريد · SMS · واتساب (اختياري).

**إشعارات المتدرب:**

| الحدث | التوقيت |
|---|---|
| تم قبول طلبك + رابط الدفع | فور الموافقة |
| رفض / طلب معلومات | فورًا |
| تفعيل الاشتراك | بعد الدفع |
| **موعد الوجبة** | قبل موعد كل وجبة بـ 15 دقيقة (قابل للضبط) |
| **تمرين اليوم** | في وقت يختاره المتدرب |
| تذكير بشرب الماء | كل X ساعة |
| تذكير بتسجيل الوزن/القياسات | حسب الجدول |
| التقييم الأسبوعي | يوم محدّد |
| **اجتماع Google Meet** | قبل 24س / 1س / 10د |
| رد جديد من المدرب | فورًا |
| تعديل الخطة | فورًا |
| رقم قياسي جديد / وسام | فورًا |
| تعليمات من المدرب | فورًا |
| انتهاء الاشتراك قريبًا | 7 / 3 / 1 يوم |
| انتهاء الاشتراك | يوم الانتهاء |
| لم تسجّل منذ أيام (تحفيز) | بعد 3 أيام عدم نشاط |

**ضوابط:**
- لا إزعاج: ساعات هدوء يحددها المتدرب.
- تجميع الإشعارات المتكرّرة.
- لوحة سجل لكل إشعار أُرسل ونجاحه (Delivery Log).
- قوالب نصية بمتغيرات `{اسم_المتدرب}` `{موعد_الوجبة}` بعربي/إنجليزي.

---

## المساعد الذكي

> المساعد الذكي للمتدرب والمدرب، وحدود الأمان وحوكمة الذكاء الاصطناعي.

**التصنيف:** التواصل · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية · المتدرب

مساعد مبني على نموذج لغوي (مثل Claude عبر API)، يعمل بصلاحية الدور ولا يتجاوزها.

**للمتدرب:**
- يجيب عن أسئلة تمارينه وتغذيته من **خطته وبياناته**.
- يشرح كيفية أداء التمرين، ويقترح بديلًا عند الإصابة أو غياب المعدات.
- يحسب سعرات وجبة ويقترح استبدالات تناسب ماكروزه.
- يلخّص أسبوعه: «التزمت بـ 4 من 5 تمارين وتأخرت في البروتين».
- يقول **نسبة التقدّم نحو الهدف** وما الذي يساعد أكثر على تحسينها.
- يذكّر ويحفّز.

**للمدرب والأدمن:**
- ملخص عن كل متدرب (عند فتح ملفه): التزامه، تقدّمه، المخاطر.
- يرصد المتدربين المتعثّرين ويقترح تدخلًا.
- يقترح تعديلات على الخطة (مسودة تحتاج اعتماد المدرب).
- يولّد مسودة برنامج/خطة غذائية من الاستبيان.
- يصيغ ردودًا على رسائل المتدربين (اقتراح يراجعه المدرب).
- يلخّص الاستبيان الجديد قبل الموافقة.
- يجيب أسئلة إدارية: «من انتهى اشتراكه هذا الأسبوع؟»، «من لم يلتزم؟».

**حوكمة الذكاء الاصطناعي (مهمة):**
- ليس بديلًا عن الطبيب: يظهر تنبيه ثابت، ولا يشخّص ولا يصف أدوية.
- عند ذكر المتدرب أعراضًا مقلقة (ألم صدر، دوخة، إصابة حادة) أو اضطرابات أكل: يوصي بمراجعة مختص ويُنبّه المدرب.
- **لا يتجاوز حدود الأمان:** حدّ أدنى للسعرات، رفض الحميات المتطرفة وجرعات المنشطات/الستيرويدات.
- كل اقتراح للمدرب يحتاج اعتماده قبل أن يصل المتدرب.
- تسجيل المحادثات وأي إجراء في سجل النشاط.
- حد استخدام يومي لكل مستخدم وفق الباقة (للتحكم بالتكلفة).
- إخفاء بيانات التعريف غير اللازمة عند إرسالها للنموذج.
- الأدمن يضبط: الاسم، النبرة، التعليمات الأساسية، قاعدة المعرفة (مثل: أسلوب المدرب وفلسفته).

---

# الأداء والتقارير

> Google Sheets، التقارير، سجل النشاط، وتتبع الاستخدام.

## الإحصائيات وربط Google Sheets

> مزامنة بيانات كل متدرب إلى Google Sheet خاص، بصلاحيات مشاركة مضبوطة.

**التصنيف:** الأداء والتقارير · **الأدوار:** الأدمن · المدرب الرئيسي · المتدرب · مالك المنصة التقنية

**الفكرة:** لكل متدرب جدول Google Sheet خاص تُزامَن إليه بياناته، ويُشارَك بالرابط مع (المدرب/الأدمن) والمتدرب، فيشاهدون الأرقام بصيغة الجداول المألوفة.

**ما يُزامَن:**

| ورقة (Sheet) | المحتوى |
|---|---|
| الملخص | الهدف، البداية، الحالي، الفرق، نسبة التقدّم |
| القياسات | التاريخ، الوزن، المحيطات، الدهون |
| التمارين | الجلسات والمجموعات والأوزان |
| التغذية | السعرات والماكروز اليومية |
| العادات | ماء، نوم، خطوات |
| الالتزام | نسب أسبوعية |

**آلية العمل:**
- قاعدة بيانات المنصة هي **المصدر الأساسي** (Source of Truth)؛ المزامنة من المنصة إلى الشيت (اتجاه واحد افتراضيًا) لتفادي تضارب البيانات.
- المزامنة عبر Google Sheets API (حساب خدمة Service Account)، تلقائيًا بعد كل تغيير أو دوريًا (كل ساعة/يوميًا).
- زر «مزامنة الآن» ورابط «فتح الشيت» في ملف المتدرب.
- **صلاحيات المشاركة:** المتدرب «مشاهد» (Viewer)، المدرب «محرر» (Editor)؛ ويمكن إلغاء المشاركة تلقائيًا بانتهاء الاشتراك.
- يمكن تفعيل تعديلات المدرب في الشيت والاستيراد منه (مرحلة 2) مع قواعد فض التعارض.
- سجل مزامنة (نجاح/فشل/عدد الصفوف).
- تصدير مجمّع لكل المتدربين لشيت إداري للأدمن.

> **تنبيه:** الإحصائيات الأساسية داخل المنصة (رسوم بيانية فورية) تبقى هي الواجهة الرئيسية؛ الشيت إضافة للشفافية والمشاركة. بيانات الصحة تُشارَك فقط بروابط مقيّدة بحسابات محدّدة وليست عامة.

## مشاركة الخطة الغذائية عبر Google Sheet

بالإضافة إلى أوراق المتابعة، يمكن توليد **ورقة خطة غذائية** لكل متدرب:

| الورقة | المحتوى |
|---|---|
| الخطة الغذائية | أيام الأسبوع، الوجبات، الأطعمة، الكميات، السعرات والماكروز |
| البدائل | لكل وجبة، البديل وما يعادله من ماكروز |
| قائمة المشتريات | مجمّعة حسب القسم لتسهيل الشراء |

- زر **«تصدير الخطة إلى Google Sheet»** في شاشة الخطة أو ملف المتدرب.
- تُحدَّث الورقة تلقائيًا عند كل تعديل معتمد، ويظهر تاريخ آخر مزامنة.
- المشاركة: المتدرب Viewer، المدرب Editor، ولا يُنشأ رابط عام.
- بديل بلا Google: تصدير PDF بعلامة المدرب أو صورة مختصرة تُرسل عبر واتساب أو الدردشة.
- عند انتهاء الاشتراك تُلغى المشاركة تلقائيًا (قابل للضبط).

---

## صفحة التقارير

> تقارير المتدرب والأدمن، المعادلات، والتصدير PDF وExcel.

**التصنيف:** الأداء والتقارير · **الأدوار:** الأدمن · المدرب الرئيسي · المدرب المساعد · أخصائي التغذية · المتدرب

صفحة كاملة للتقارير، تقدّم للمتدرب والمدرب رؤية من أول يوم إلى آخر يوم.

**تقرير المتدرب الفردي:**

| القسم | المحتوى |
|---|---|
| الملخص | الفترة، الهدف، النتيجة الإجمالية |
| **قبل وبعد** | الوزن/المحيطات/الدهون: البداية والنهاية **والفرق** والنسبة |
| الصور | مقارنة زمنية |
| الرسوم | الوزن، المحيطات، السعرات، الأوزان المرفوعة، ساعات التمرين |
| التمارين | عدد الجلسات، الأيام، الساعات، الحجم الكلي (Volume)، الأرقام القياسية |
| التغذية | متوسط السعرات والماكروز مقابل الهدف، أيام الالتزام |
| العادات | ماء، نوم، خطوات |
| الالتزام | نسب أسبوعية وشهرية |
| **رأي المدرب** | الملاحظات والتقييمات بالتسلسل الزمني |
| **توصيات المساعد** | ما الذي سيساعد أكثر |
| الحضور | الاجتماعات والالتزام بها |

**معادلات المؤشرات** (تُثبَّت مع العميل):

| المؤشر | المعادلة |
|---|---|
| الالتزام بالتمارين | الجلسات المنفّذة ÷ المخطّطة × 100 |
| الالتزام بالتغذية | الأيام التي بلغ فيها السعرات ضمن ±10% من الهدف ÷ الأيام المسجّلة × 100 |
| نسبة التقدّم نحو الهدف | (الوزن البدء − الوزن الحالي) ÷ (الوزن البدء − الوزن المستهدف) × 100 (وتُعكس لبناء العضلات) |
| نسبة النجاح الإجمالية | وزن مركّب: تقدّم 40% + التزام تمارين 30% + التزام تغذية 20% + عادات 10% (قابل للتعديل) |
| السلسلة | أيام متتالية بتسجيل واحد على الأقل |

**تقارير الأدمن:**

| التقرير | المحتوى |
|---|---|
| المتدربون | النمو، التوزيع (هدف/باقة/مدرب/مدينة) |
| الاشتراكات | جديد، تجديد، انتهى، معدل الاحتفاظ (Retention)، معدل التسرب (Churn) |
| الإيرادات | حسب الفترة/الباقة/الطريقة/القسيمة |
| التحويل | زوار ← تسجيل ← استبيان ← موافقة ← دفع (Funnel) |
| الالتزام العام | من يلتزم ومن يتعثّر |
| المدربون | أحمال المدرب، رضا المتدربين |
| المحتوى | أكثر التمارين/الفيديوهات مشاهدة |
| قنوات الاكتساب | من أين جاء المتدربون |

**التصدير:** PDF (بنموذج جميل بعلامة المدرب) وExcel/CSV. إرسال التقرير الشهري تلقائيًا للمتدرب بالبريد/واتساب (قابل للتفعيل).

---

## سجل النشاط (Activity Log)

> سجل لا يُعدَّل لكل حدث: من فعل، ومتى، والقيمة قبل وبعد.

**التصنيف:** الأداء والتقارير · **الأدوار:** الأدمن · المدرب الرئيسي

سجل لا يُعدَّل لكل ما يحدث في المنصة، يطّلع عليه الأدمن.

| العمود | الوصف |
|---|---|
| الوقت | تاريخ ووقت دقيق |
| المستخدم | من قام بالفعل ودوره |
| الحدث | تسجيل، دخول، تعديل، حذف، موافقة، دفع، تغيير خطة… |
| الكائن | المتدرب/الخطة/الفاتورة المتأثرة |
| التفاصيل | **القيمة قبل ← بعد** للتعديلات |
| الجهاز و IP | المتصفح/الجوال |

**ميزات:** بحث وتصفية (المستخدم، النوع، الفترة)، تصدير، تنبيه على الأحداث الحرجة (حذف، تغيير صلاحيات، دخول من جهاز جديد)، الاحتفاظ لمدة قابلة للضبط.

**التقنية:** `spatie/laravel-activitylog` أو تنفيذ مخصّص.

---

## تتبع الصفحات والفيديو

> تتبع الصفحات ومدة البقاء ومشاهدة الفيديو، مع ضوابط الخصوصية.

**التصنيف:** الأداء والتقارير · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

للأدمن رؤية سلوك كل متدرب داخل المنصة والتطبيق.

**يُسجَّل:**

| البيان | التفاصيل |
|---|---|
| الصفحة/الشاشة المزارة | الاسم والمسار والوقت |
| **مدة البقاء** | الوقت الفعلي النشط (وليس مجرد فتح الصفحة) |
| عدد الزيارات | لكل صفحة |
| الجلسات | الدخول/الخروج، الجهاز، المنصة (ويب/iOS/Android) |
| **الفيديو التدريبي** | هل شاهد؟ نسبة المشاهدة %، مرات، آخر موضع، هل أكمل؟ |
| التمارين | فتح التمرين، بدء الجلسة، إنهاؤها |
| آخر ظهور | آخر نشاط |

**عرض الأدمن (داخل ملف المتدرب → تبويب «النشاط»):**
- جدول بالصفحات والوقت المستغرق.
- رسم زمني (Timeline) لجلسة المتدرب.
- قائمة بالفيديوهات: شاهد / لم يشاهد / نسبة.
- لوحة عامة: الصفحات الأكثر زيارة، المتدربون الأقل تفاعلًا.
- تنبيه: «لم يشاهد فيديو شرح التمرين رغم تنفيذه».

**التقنية:**
- إرسال أحداث خفيفة (Heartbeat كل 15 ثانية) إلى API مخصّص، وتجميعها بدفعات.
- الأحداث الخام تُحفظ لمدة محدّدة (مثلًا 90 يومًا) ثم تُجمَّع في جداول ملخّصة.
- تتبع الفيديو عبر مشغّل يرسل `timeupdate` و`ended`.

> **خصوصية:** يُذكر هذا التتبع بوضوح في سياسة الخصوصية والشروط ويوافق عليه المتدرب عند التسجيل.

---

# إدارة النظام

> الفريق، الإعدادات، الموقع، الأمان، والجودة.

## المستخدمون والفريق

> إدارة الفريق: دعوات، أدوار، تعيين المتدربين، وإيقاف الحسابات.

**التصنيف:** إدارة النظام · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

- إضافة مستخدم يدويًا أو بدعوة برابط على بريده.
- اختيار الدور وتخصيص الصلاحيات (للمساعدين).
- تعيين المتدربين للمدربين المساعدين.
- إيقاف/تفعيل المستخدم وإعادة تعيين كلمة المرور وفرض 2FA.
- عرض الجلسات النشطة وإنهاؤها.
- حذف/إخفاء الحساب وفق سياسة الاحتفاظ بالبيانات (انظر الخصوصية).

---

## الإعدادات

> كل إعدادات المنصة: العلامة، الدفع، البريد، Google، الذكاء الاصطناعي، والتطبيق.

**التصنيف:** إدارة النظام · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

| القسم | المحتوى |
|---|---|
| العلامة التجارية | الاسم، الشعار، الألوان، الخطوط |
| عام | المنطقة الزمنية (Asia/Riyadh)، اللغة، العملة (SAR)، أول أيام الأسبوع |
| بيانات المدرب | النبذة، التراخيص، الرقم الضريبي، العنوان |
| الدفع | بوابة الدفع، حساب بنكي للتحويل، الضريبة |
| الفواتير | الترقيم، الشعار، الشروط |
| البريد | SMTP/مزوّد، قوالب |
| الرسائل | SMS وواتساب (UltraMsg/Twilio/Cloud API) |
| Google | Calendar/Meet وSheets (OAuth وحساب الخدمة) |
| الإشعارات | تفعيل كل نوع والقنوات والنصوص |
| الاستبيان | إدارة الأسئلة والأقسام |
| الذكاء الاصطناعي | التفعيل، الإعدادات، الحدود |
| الاجتماعات | ساعات التوفر، المدة الافتراضية |
| التطبيق | الإصدارات، التحديث الإجباري، روابط المتاجر |
| الأمان | 2FA، سياسة كلمات المرور، مدة الجلسة |
| الاحتفاظ بالبيانات | مدد الحفظ والحذف |
| تتبع التسويق | Google Analytics، Meta Pixel، TikTok |
| النسخ الاحتياطي | الجدولة والاسترجاع |

---

## المحتوى والموقع (CMS)

> إدارة الموقع والمحتوى بلا برمجة: الأقسام، الصفحات، الآراء، الأسئلة الشائعة، SEO.

**التصنيف:** إدارة النظام · **الأدوار:** الأدمن · المدرب الرئيسي

يديرها الأدمن بلا برمجة:
- أقسام الصفحة الرئيسية (محتوى عربي/إنجليزي، ترتيب، إظهار/إخفاء).
- صفحات ثابتة: من نحن، الشروط، الخصوصية، الاسترجاع.
- روابط السوشيال وروابط تحميل التطبيق.
- معرض النتائج (قبل/بعد بموافقة).
- آراء المتدربين (موافقة قبل النشر).
- الأسئلة الشائعة.
- مدونة ومقالات (مرحلة 3).
- نموذج «تواصل معنا» (يصل للأدمن) والنشرة البريدية.
- إعدادات SEO لكل صفحة.
- مكتبة الوسائط (صور وفيديو وملفات) مع تحديد الأحجام.

---

## الأمان والخصوصية والامتثال

> الأمان التقني، PDPL، الموافقات، وحق الوصول والتصدير والحذف.

**التصنيف:** إدارة النظام · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

**الأمان التقني:**
- HTTPS إلزامي وHSTS، وترويسات أمان (CSP, X-Frame-Options…).
- كلمات مرور مُجزَّأة (Argon2/bcrypt)، سياسة قوة كلمات المرور.
- 2FA للأدمن، وحدّ لمحاولات الدخول (Rate Limiting).
- حماية CSRF وXSS وSQL Injection (ميزات Laravel الافتراضية + مراجعة).
- API: Laravel Sanctum (رموز قصيرة العمر) مع تحديث الرمز.
- رفع الملفات: فحص النوع والحجم، تخزين خارج المسار العام، روابط موقّعة مؤقتة (Signed URLs) للصور والفيديو الخاصة.
- تشفير البيانات الحسّاسة في قاعدة البيانات (الصحية) والنسخ الاحتياطية.
- لا تُخزَّن بيانات البطاقات في النظام (تُعالج لدى البوابة فقط — PCI DSS خارج نطاقنا).
- اختبار اختراق وفحص ثغرات قبل الإطلاق.
- نسخ احتياطي يومي مشفّر مع اختبار الاسترجاع.

**الخصوصية والامتثال:**
- **نظام حماية البيانات الشخصية السعودي (PDPL):** البيانات الصحية فئة حسّاسة؛ موافقة صريحة، تحديد الغرض، حق الاطلاع والتصحيح والحذف، وإشعار عند التسرّب.
- **موقع الاستضافة:** يُفضَّل داخل المملكة أو منطقة متوافقة مع متطلبات نقل البيانات (يُحدَّد حسب سياسة العميل).
- سياسة خصوصية وشروط استخدام باللغتين، مع إقرار الموافقة عند التسجيل.
- بند واضح حول تتبع النشاط والمساعد الذكي.
- سياسة الكوكيز مع لافتة موافقة.
- حق **تصدير بيانات المتدرب وحذف حسابه** (من التطبيق والويب).
- تقييد وصول الأدمن للبيانات الصحية بالسبب وتسجيله.
- إخلاء مسؤولية طبي: البرامج عامة ولا تغني عن استشارة طبية.

---

## الأداء والجودة

> الأداء والتوسّع والطوابير والمراقبة والاختبارات والوصولية.

**التصنيف:** إدارة النظام · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

**الهدف:** منصة منظّمة وسريعة وموثوقة.

- **السرعة:** Redis للكاش والجلسات والطوابير، فهرسة قاعدة البيانات، Eager Loading لتفادي N+1، ترقيم الصفحات، CDN للصور/الفيديو.
- **الفيديو:** استضافة على خدمة مخصّصة (Bunny Stream / Cloudflare Stream / S3 + CloudFront) وليس من السيرفر الرئيسي.
- **المهام الثقيلة بالخلفية (Queues):** إرسال الإشعارات، مزامنة Sheets، توليد PDF، تحليلات الذكاء الاصطناعي. مراقبتها بـ Laravel Horizon.
- **قابلية التوسّع:** تقسيم الخدمات عند الحاجة، قراءة من Replica.
- **المراقبة:** Sentry للأخطاء، Laravel Telescope/Pulse للتطوير والأداء، تنبيهات توقف الخدمة (Uptime).
- **الجودة:** اختبارات آلية (Pest/PHPUnit) لمسارات الاشتراك والدفع، CI/CD، بيئة Staging.
- **وصولية:** تباين ألوان جيد، دعم قارئات الشاشة، حجم خط قابل للتكبير.

---

# المرجع التقني

> البنية، نموذج البيانات، API، التكاملات، وخارطة التنفيذ.

## البنية التقنية

> الطبقات والتقنيات المقترحة والحزم والاستضافة وCI/CD.

**التصنيف:** المرجع التقني · **الأدوار:** مالك المنصة التقنية · الأدمن · المدرب الرئيسي

| الطبقة | الاختيار المقترح |
|---|---|
| الإطار | Laravel 11/12 (PHP 8.3+) |
| الواجهة | Blade + Livewire أو Inertia (Vue/React) + Tailwind (RTL) |
| لوحة الأدمن | Filament أو بناء مخصّص |
| قاعدة البيانات | MySQL 8 / PostgreSQL |
| الكاش والطوابير | Redis + Horizon |
| الوقت الفعلي | Laravel Reverb |
| الملفات | S3-Compatible (أو تخزين محلي مشفّر) |
| الجوال | Flutter (أو React Native) |
| Push | Firebase Cloud Messaging |
| الدفع | Moyasar / HyperPay / Tap |
| البريد | SES / Mailgun / SMTP |
| الاستضافة | Linux + Nginx، حاويات Docker، (سحابة داخل المملكة إن لزم) |
| CI/CD | GitHub Actions / GitLab CI |

**الحزم المقترحة:** `spatie/laravel-permission`، `spatie/laravel-activitylog`، `spatie/laravel-medialibrary`، `laravel/sanctum`، `spatie/laravel-backup`، `barryvdh/laravel-dompdf`، `maatwebsite/excel`، `google/apiclient`.

**تعدد اللغات:** ملفات ترجمة Laravel + حقول مترجمة (`spatie/laravel-translatable`) للمحتوى.

---

## نموذج البيانات

> الجداول الرئيسية مجمّعة حسب الوحدة، مع ملاحظات الحذف الناعم والتقسيم.

**التصنيف:** المرجع التقني · **الأدوار:** مالك المنصة التقنية · الأدمن · المدرب الرئيسي

الجداول الرئيسية (مخطط مبدئي):

**الحسابات والأدوار:** `users` · `roles` · `permissions` · `trainer_trainee_assignments` · `devices` (رموز FCM) · `user_sessions`

**الاستبيان:** `questionnaire_sections` · `questionnaire_questions` · `questionnaire_responses` · `questionnaire_answers`

**المتدربون والطلبات:** `trainee_profiles` · `registration_requests` (الحالة، القرار، السبب) · `trainer_notes`

**الاشتراكات والمال:** `plans` · `plan_features` · `subscriptions` · `subscription_pauses` · `coupons` · `payments` · `invoices` · `invoice_items` · `refunds` · `bank_transfers`

**التمارين:** `exercises` · `exercise_media` · `workout_programs` · `program_weeks` · `program_days` · `program_day_exercises` · `trainee_programs` (الإصدارات) · `workout_sessions` · `workout_sets` · `personal_records`

**التغذية:** `foods` · `food_servings` · `meal_plans` · `meal_plan_days` · `meals` · `meal_items` · `meal_substitutes` · `food_logs` · `supplement_plans`

**التقدّم:** `body_measurements` · `progress_photos` · `habit_definitions` · `habit_logs` · `water_logs` · `sleep_logs` · `step_logs` · `weekly_checkins` · `trainer_feedback`

**التواصل:** `conversations` · `conversation_participants` · `messages` · `message_attachments` · `meetings` · `meeting_attendees` · `availability_slots`

**الإشعارات:** `notifications` · `notification_templates` · `notification_preferences` · `notification_deliveries`

**التتبع والتقارير:** `activity_logs` · `page_views` · `page_view_sessions` · `video_views` · `reports` · `report_snapshots` · `sheet_syncs`

**الذكاء الاصطناعي:** `ai_conversations` · `ai_messages` · `ai_settings` · `ai_usage`

**المحتوى والإعدادات:** `settings` · `cms_sections` · `cms_pages` · `testimonials` · `faqs` · `contact_messages` · `newsletter_subscribers` · `media`

**ملاحظات:**
- حذف ناعم (Soft Deletes) لمعظم الجداول.
- جداول الأحداث الكبيرة (`page_views`) مقسّمة (Partitioned) وتُجمَّع دوريًا.
- التواريخ بـ UTC وتُعرض بتوقيت الرياض.
- عمود `tenant_id` غير مطلوب الآن؛ يمكن إضافته لاحقًا إذا تحوّل المنتج إلى SaaS لعدة مدربين (انظر الأسئلة المفتوحة).

---

## الـ API

> REST API: المجموعات، الأمثلة، والاتفاقيات والتوثيق.

**التصنيف:** المرجع التقني · **الأدوار:** مالك المنصة التقنية · الأدمن · المدرب الرئيسي

REST بصيغة JSON، المسار: `/api/v1/...`، التوثيق عبر OpenAPI (Swagger/Scribe).

| المجموعة | أمثلة |
|---|---|
| المصادقة | `POST /auth/register` · `/auth/login` · `/auth/otp` · `/auth/refresh` · `/auth/logout` |
| الاستبيان | `GET /questionnaire` · `POST /questionnaire/answers` |
| الاشتراك | `GET /plans` · `POST /subscriptions` · `GET /subscriptions/current` |
| الدفع | `POST /payments` · `POST /webhooks/payment` |
| البرنامج | `GET /me/program` · `POST /workouts/sessions` · `POST /workouts/sessions/{id}/sets` |
| التغذية | `GET /me/meal-plan` · `POST /food-logs` · `GET /foods?q=` |
| التقدّم | `POST /measurements` · `POST /photos` · `GET /me/progress` · `GET /me/reports` |
| العادات | `POST /habits/logs` · `POST /water` |
| الدردشة | `GET /conversations` · `POST /messages` + قناة WebSocket |
| الاجتماعات | `GET /meetings` · `POST /meetings` |
| الإشعارات | `GET /notifications` · `POST /devices` (تسجيل FCM) |
| التتبع | `POST /track/events` · `POST /track/video` |
| المساعد | `POST /assistant/messages` |

**اتفاقيات:** ترقيم صفحات موحّد، أخطاء بصيغة موحّدة، `Accept-Language` لتحديد اللغة، إصدار التطبيق في الترويسة لدعم التحديث الإجباري.

---

## التكاملات الخارجية

> كل التكاملات الخارجية ودورها وملاحظاتها: Google، الدفع، FCM، واتساب، ZATCA.

**التصنيف:** المرجع التقني · **الأدوار:** مالك المنصة التقنية · الأدمن · المدرب الرئيسي

| الخدمة | الاستخدام | ملاحظات |
|---|---|---|
| **Google Calendar / Meet** | إنشاء الاجتماعات والروابط | OAuth لحساب المدرب |
| **Google Sheets** | مزامنة الإحصائيات ومشاركتها | Service Account + صلاحيات مشاركة |
| **بوابة الدفع** | مدى، Apple Pay، STC Pay، بطاقات | Webhooks + توقيع |
| **Firebase (FCM)** | Push | iOS يحتاج APNs Key |
| **واتساب** | تذكيرات وإشعارات | WhatsApp Cloud API (قوالب معتمدة) أو UltraMsg/Twilio |
| **SMS / OTP** | التحقق والتنبيه | مزوّد سعودي معتمد (مثل Unifonic) |
| **البريد** | الإشعارات والفواتير | SES / Mailgun |
| **مزوّد الذكاء الاصطناعي** | المساعد | Claude API مع ضوابط الخصوصية |
| **استضافة الفيديو** | التمارين | Bunny / Cloudflare Stream |
| **Apple Health / Health Connect** | استيراد الخطوات والنوم | مرحلة 2 |
| **ZATCA** | الفوترة الإلكترونية | حسب وضع العميل |
| **Google/Meta/TikTok Analytics** | التسويق | بعد موافقة الكوكيز |

---

## خارطة التنفيذ والمراحل

> ثماني مراحل من التحليل إلى الإطلاق وما بعده، بمعايير قبول.

**التصنيف:** المرجع التقني · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

| المرحلة | المحتوى | المدة التقريبية |
|---|---|---|
| **0 — التحليل والتصميم** | اعتماد التوثيق، UX/UI، هوية المدرب، تصميم قاعدة البيانات | 2–3 أسابيع |
| **1 — النواة (MVP ويب)** | صفحة الهبوط، التسجيل والدخول، الاستبيان، طلبات الأدمن، الباقات والاشتراك والدفع، لوحة الأدمن، إشعارات أساسية | 6–8 أسابيع |
| **2 — المحتوى والمتابعة** | مكتبة التمارين، البرامج، التغذية، القياسات والصور، لوحة المتدرب، ملاحظات المدرب، التقارير الأساسية | 6–8 أسابيع |
| **3 — التواصل والتكامل** | الدردشة، Google Meet، الإشعارات الكاملة والتذكيرات، Google Sheets | 4–5 أسابيع |
| **4 — الذكاء والتحليل** | المساعد الذكي، التقارير المتقدمة، سجل النشاط، تتبع الصفحات والفيديو | 4–5 أسابيع |
| **5 — تطبيق الجوال** | تطبيق المتدرب + المدرب، Push، Offline، النشر في المتاجر | 8–10 أسابيع (يبدأ بالتوازي مع المرحلة 3) |
| **6 — الإطلاق** | اختبارات، أمان، أداء، تدريب العميل، إطلاق تجريبي ثم عام | 2–3 أسابيع |
| **7 — لاحقًا** | تجديد تلقائي، تمارا/تابي، تحديات ونقاط، مدونة، Wearables، تعدد المدربين | حسب الأولوية |

> المدد تقديرية لفريق صغير، وتُراجَع بعد اعتماد التصميم وحجم الفريق.

**معايير القبول العامة:**
- كل رحلة في القسم 2 تعمل من البداية للنهاية على الويب والجوال.
- كل إشعار في الجدول يصل بالقناة والتوقيت المحدّدين.
- لا يرى أي مستخدم بيانات غيره (اختبار صلاحيات آلي).
- تقارير الأدمن تطابق الأرقام الفعلية (اختبار مطابقة).

---

## أسئلة مفتوحة للعميل

> أسئلة الأعمال والمحتوى والتقنية والسياسات التي تحتاج قرارًا قبل البناء.

**التصنيف:** المرجع التقني · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

**الأعمال:**
1. هل المنصة **لمدرب واحد فقط**، أم يُحتمل أن تضم مدربين آخرين (SaaS)؟ هذا يغيّر البنية جذريًا.
2. كم متدربًا متوقعًا في السنة الأولى؟ وهل سيعمل معه مدربون مساعدون/أخصائي تغذية؟
3. الباقات: ما الأسعار وما المضمّن في كل واحدة؟ وهل من سياسة استرجاع؟
4. هل هو مسجّل ضريبيًا (ضريبة القيمة المضافة) وهل مطلوب ربط ZATCA؟
5. هل الاجتماعات جزء من كل باقة أم مدفوعة منفصلة؟

**المحتوى:**
6. من يجهّز مكتبة التمارين والفيديوهات؟ هل يملك فيديوهات جاهزة؟
7. هل لديه قاعدة أطعمة أم نستخدم قاعدة جاهزة (وهل نحتاج أطعمة سعودية)؟
8. هل الاستبيان معدّ أم نقترحه نحن؟

**التقني:**
9. هل يملك حساب Google Workspace للمدرب (لـ Meet وSheets)؟
10. أي بوابة دفع يفضّل؟ وهل لديه حساب تاجر؟
11. هل لديه حسابات متاجر التطبيقات (Apple Developer / Google Play)؟
12. هل التطبيق للمتدرب فقط أم يحتاجه المدرب أيضًا؟ هل يكفي iOS+Android بنفس الكود؟
13. هل مطلوب الاستضافة داخل المملكة؟

**السياسات:**
14. ما سياسة نشر صور «قبل وبعد»؟
15. هل يرغب المدرب بمشاركة المكمّلات الغذائية/بيعها (متجر)؟ هذا خارج النطاق الحالي.
16. هل يُسمح للمساعد الذكي بتقديم تعديلات مباشرة أم اقتراحات فقط؟ (نوصي بالاقتراحات فقط).

---

## سجل التحديثات

> سجل إصدارات التوثيق والتغييرات الجوهرية.

**التصنيف:** المرجع التقني · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

| التاريخ | التغيير |
|---|---|
| 2026-11-03 | الإصدار 2.0: توحيد الفهرس والتنقل، وتوضيح فصل صلاحيات مالك البنية التقنية عن بيانات أعمال المدرب، وإضافة نطاق الوثيقة وقواعد التشغيل ومعايير القبول وإدارة التغيير. الإصدار السابق: تنظيم المتطلبات الأساسية، وإضافة وحدات (قياسات وصور، عادات، تقييم أسبوعي، مكتبة تمارين، حاسبة سعرات، حوكمة الذكاء الاصطناعي، الامتثال PDPL، خارطة التنفيذ). |

---

# الملاحق

> الإضافات على المتطلبات الأصلية وقواعد التشغيل الملزمة.

## ما أُضيف على المتطلبات الأصلية

> الوحدات التي أُضيفت على متطلبات العميل الأصلية ولماذا.

**التصنيف:** الملاحق · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

تنظيمًا للمراجعة مع العميل، هذه الوحدات **أضفناها** بناءً على الدراسة وهي غير مذكورة صراحة:

| الإضافة | السبب |
|---|---|
| استبيان صحي (PAR-Q) وإقرار طبي | سلامة المتدرب وحماية المدرب قانونيًا |
| مكتبة تمارين بفيديوهات وبدائل | أساس بناء أي برنامج |
| حاسبة السعرات والماكروز وقاعدة أطعمة سعودية | تسريع عمل المدرب |
| قياسات الجسم وصور التقدّم وقبل/بعد | قلب التقارير |
| تتبع الماء والنوم والخطوات | صورة أشمل للالتزام |
| التقييم الأسبوعي (Check-in) | أهم أداة متابعة بين المدرب والمتدرب |
| ساعات توفّر المدرب والحجز | تنظيم المواعيد |
| قسائم الخصم ومهلة السماح والتجميد | مرونة الاشتراكات |
| تحويل بنكي وفوترة ضريبية (ZATCA) | متطلبات السوق السعودي |
| مدربون مساعدون وأخصائي تغذية | نمو العمل |
| أرقام قياسية وسلسلة التزام وأوسمة | تحفيز المتدرب |
| مزامنة Apple Health / Health Connect | بيانات تلقائية دون إدخال يدوي |
| المراجعات وآراء المتدربين وFAQ والمدونة | تسويق وثقة |
| إدارة الأجهزة والجلسات و2FA | أمان |
| نسخ احتياطي وحق حذف/تصدير البيانات | امتثال PDPL ومتاجر التطبيقات |

---

## قواعد تشغيل ملزمة

> قواعد لا بد من تثبيتها قبل التطوير: الفصل بين الحالات، الدفع، الصلاحيات، والتتبع.

**التصنيف:** الملاحق · **الأدوار:** الأدمن · المدرب الرئيسي · مالك المنصة التقنية

### 1. حالات الطلب والاشتراك منفصلة

لا تُمثّل حالة الحساب وحالة طلب التسجيل وحالة الاشتراك بحقل واحد. لكل منها دورة حياة مستقلة:
- الحساب: نشط، غير موثّق، موقوف، محذوف/مجدول للحذف.
- الطلب: مسودة، ينتظر الاستبيان، ينتظر المراجعة، يحتاج معلومات، مقبول، مرفوض.
- الاشتراك: ينتظر الدفع، فعّال، قريب الانتهاء، مجمّد، منتهٍ، ملغى، مسترد جزئيًا/كليًا.

### 2. الدفع لا يفعّل الاشتراك بمجرد العودة من صفحة البوابة

تفعيل الاشتراك يتم بعد التحقق من Webhook موقّع من مزود الدفع، مع منع تكرار معالجة نفس العملية (Idempotency)، ومطابقة المبلغ والعملة والطلب. صفحة العودة للمتصفح ليست مصدر إثبات الدفع.

### 3. صلاحيات Google Sheets

- لا تُنشأ روابط عامة لملفات تحتوي بيانات صحية أو قياسات.
- المشاركة تكون على حسابات محددة، مع إمكانية إلغاء الصلاحية.
- المتدرب يحصل افتراضيًا على Viewer، ولا يحصل على Editor إلا بقرار واضح.
- تسجّل عمليات إنشاء الملف والمشاركة والإلغاء والمزامنة.
- فشل المزامنة لا يوقف المنصة ولا يغيّر بيانات قاعدة البيانات.

### 4. التتبع والتحليلات

يُجمع الحد الأدنى اللازم من أحداث الاستخدام، مع إشعار واضح وموافقة مناسبة وفق سياسة الخصوصية. لا يُستخدم تتبع الصفحات أو الفيديو لتقييم صحي أو لاتخاذ قرار آلي ضد المتدرب. يجب تعريف «مدة المشاهدة الفعلية» تقنيًا، والتعامل مع التبويب غير النشط وانقطاع الاتصال.

### 5. المساعد الذكي

- لا يشخّص الحالات الطبية ولا يصف علاجًا ولا يوصي بأدوية أو جرعات منشطات.
- لا يعدّل خطة منشورة ولا يرسل توصية حساسة دون اعتماد المدرب المختص.
- يوضح أن حساب السعرات والتوقعات تقديري وقد يختلف عن القياس الفعلي.
- تُعرض مصادر البيانات والفترة التي بُني عليها التحليل، مع إمكانية تصحيح البيانات.
- تُحجب البيانات الشخصية غير اللازمة عن مزود النموذج، وتُحدد مدة الاحتفاظ بالمحادثات.

### 6. تعريف مؤشرات الأداء

كل نسبة في لوحة التحكم أو التقرير يجب أن تعرض تعريفها وفترتها ومقامها. لا تُعرض «نسبة نجاح» موحدة باعتبارها حقيقة طبية؛ هي مؤشر تشغيلي مركب قابل للتخصيص، ولا يجوز أن يخفي المؤشرات الفردية.

### 7. معايير قبول تفصيلية

- لا يستطيع المتدرب الوصول إلى ملف متدرب آخر بتغيير ID في الرابط أو API.
- لا يستطيع المدرب المساعد رؤية متدرب غير معيّن له.
- لا يستطيع أخصائي التغذية تعديل برنامج التمارين إلا بصلاحية صريحة.
- لا يُفعّل اشتراك دون إثبات دفع صحيح أو تسجيل دفع يدوي موثق.
- كل تعديل على خطة منشورة يحفظ نسخة سابقة واسم من عدّل ووقت التعديل.
- كل صورة تقدم أو ملف صحي خاص لا يمكن الوصول إليه برابط عام.
- يمكن إعادة إرسال الإشعار دون إنشاء دفعة أو فاتورة مكررة.
- يمكن استعادة نسخة احتياطية في بيئة اختبار والتحقق من سلامة الملفات وقاعدة البيانات.
- تعمل الواجهات الأساسية بالعربية RTL والإنجليزية LTR وعلى أحجام الجوال والكمبيوتر.
- تُختبر الرحلات الأساسية آليًا: التسجيل، الموافقة، الدفع، التفعيل، تسجيل التمرين، تسجيل الوجبات، التقييم الأسبوعي، التجديد والانتهاء.

### 8. إدارة التغيير

أي إضافة بعد اعتماد هذه الوثيقة تُسجّل كطلب تغيير يتضمن: وصف المتطلب، سبب التغيير، الشاشات المتأثرة، أثره على قاعدة البيانات وAPI، أثره الأمني، تقدير الوقت والتكلفة، ومعيار القبول. لا تُعد الإضافات المذكورة في «لاحقًا» التزامًا ضمن السعر أو المدة الأساسية.

---

© 2026 AZVYRA · تطوير BYTE ON · جميع الحقوق محفوظة.
