الهندسة المعمارية والتشغيل
الحزمة التقنية
Section titled “الحزمة التقنية”| الطبقة | الاختيار | الحالة |
|---|---|---|
| الخلفية، وواجهة البرمجة (API)، والموقع، ولوحة الإدارة | Laravel 13 (PHP 8.3)، تطبيق أحادي معياري | قائم |
| قاعدة البيانات | PostgreSQL 16 | قائم |
| واجهة لوحة الإدارة | Livewire 4 + Tailwind 4، تُقدَّم عبر Vite | قائم |
| واجهة البرمجة (API) | REST + OpenAPI 3.1، رموز وصول Sanctum لكل جهاز، مرجع تفاعلي Scalar | قائم |
| الذاكرة المؤقتة، وطوابير الانتظار، والعدّادات | Redis + Horizon | مهيّأ؛ محليًا، يُعتمد على قاعدة البيانات كبديل |
| تخزين الوسائط | قرص خاص محلي أو متوافق مع S3 (R2 أو S3 أو MinIO)، روابط موقّعة | اختيار المزوّد قيد التحكيم (ADR-0003) |
| تطبيق الهاتف | React Native / Expo | مستودع منفصل؛ الربط في الدفعة L5 |
| الاستضافة | VPS مُدار، أو PaaS، أو مستضيف مغربي | قيد التحكيم (ADR-0009) |
تطبيق أحادي معياري
Section titled “تطبيق أحادي معياري”تعيش واجهة البرمجة (API) والموقع ولوحة الإدارة في تطبيق واحد قابل للنشر. تطابق الحدود الداخلية مكوّنات ملف الهندسة المعمارية: الكتالوج (App\Catalogue)، والحسابات (App\Auth)، والوسائط (App\Media)، والمتحكّمات بحسب كل سطح (Admin، وApi\V1، والموقع). سيأتي الدفع والإشعارات كوحدات تُنفَّذ في مهام خلفية، لا كخدمات منفصلة.
البيئات
Section titled “البيئات”لا أسرار في الكود: كل شيء يمرّ عبر متغيرات البيئة، والملف .env.example هو قائمتها المشروحة. الترحيلات هي الطريقة الوحيدة لتطوير المخطط.
| التطوير | الاختبار / الإنتاج | |
|---|---|---|
| قاعدة البيانات | PostgreSQL محلي | PostgreSQL على الخادم |
| الوسائط | MEDIA_DISK=media_local |
MEDIA_DISK=media_s3 وMEDIA_S3_* |
| رموز الدخول | OTP_EMAIL_CHANNEL=log (الرمز يُكتب في السجل) |
OTP_EMAIL_CHANNEL=mail وSMTP؛ الهاتف بعد ADR-0006 |
| الذاكرة المؤقتة، والطوابير، والمحدِّدات | قاعدة البيانات | Redis |
| رموز وصول الأجهزة | بلا انتهاء | SANCTUM_TOKEN_EXPIRATION بالدقائق، يُحدَّد في الدفعة L8 |
| اللغات | APP_LOCALE=fr، APP_SITE_LOCALE=ar |
كذلك |
متغيرات البيئة الخاصة بالمشروع
Section titled “متغيرات البيئة الخاصة بالمشروع”| المتغير | الدور |
|---|---|
APP_SITE_LOCALE |
اللغة الافتراضية للموقع العام. |
MEDIA_DISK، MEDIA_SIGNER |
قرص الوسائط ونمط التوقيع (auto، app). |
MEDIA_S3_KEY، MEDIA_S3_SECRET، MEDIA_S3_REGION، MEDIA_S3_BUCKET، MEDIA_S3_ENDPOINT، MEDIA_S3_PATH_STYLE |
تخزين متوافق مع S3. |
OTP_EMAIL_CHANNEL، OTP_PHONE_CHANNEL، OTP_DEFAULT_COUNTRY_CODE |
قنوات رمز الدخول ورمز البلد الافتراضي. |
SANCTUM_TOKEN_EXPIRATION |
مدة صلاحية رموز وصول الأجهزة، بالدقائق؛ فارغ = بلا انتهاء. |
ADMIN_EMAIL، ADMIN_PASSWORD |
حساب المدير الذي ينشئه الـ seeder — على جهاز التطوير فقط. |
التشغيل المتوقع منذ المرحلة التجريبية
Section titled “التشغيل المتوقع منذ المرحلة التجريبية”بيئات منفصلة، وترحيلات ذات إصدارات، ونسخ احتياطية تلقائية مع اختبار الاستعادة، ومتابعة للأخطاء ومسبار للتوافر، وتكامل مستمر عند كل push. تُثبَّت سلسلة النشر مع تحكيم الاستضافة.