تخطَّ إلى المحتوى الرئيسي

توثيق الموديولز

حقول البيانات

الكيانات، الحقول، الأنواع.

مكتمل

واجهة `Opportunity` (المعرَّفة في `core/models/opportunity.model.ts`) هي عقد الكيان. الحقول تنقسم إلى ثلاث مجموعات: الهوية (id / slug / type)، الأهلية (sector / stage / country)، دورة الحياة (publishedAt / deadlineAt / lastVerifiedAt).

حقول الهوية

id · string
معرّف مستقرّ. الصيغة: `or-XXX` (مثل `or-001`). 3 أرقام بـ zero-padding.
slug · string
slug الـ URL. الصيغة: `{المنظِّم-أو-البرنامج}-{الدورة-أو-السنة}`.
typeSlug · OpportunityTypeSlug
أنواع الفرص العشرة.

حقول المحتوى المُتَرجَم

  • `content: { en: OpportunityContent; ar: OpportunityContent }` — كتل محتوى ثنائية اللغة: العنوان، الملخّص، الوصف الكامل، ملاحظات الأهلية، ملاحظات الفوائد.
  • `getOpportunityContent(o, lang)` helper يحلّ المحتوى الخاصّ بالـ Locale مع EN fallback.

حقول التصنيف

countryCode · string
دولة ISO-2 (مثل EG / SA / AE). تقود الفلترة الجغرافية ومطابقة الدولة Cross-module.
region · OpportunityRegion
`MENA` | `GCC` | `Levant` | `NorthAfrica` | `Global`. للفرص متعدّدة الدول.
sectorSlugs · string[]
القطاعات المستهدفة. مصفوفة فارغة = قطاعي-محايد.
stageSlugs · string[]
مراحل الشركة المؤهَّلة. تقود مطابقة المرحلة Cross-module.
format · OpportunityFormat
`Online` | `Physical` | `Hybrid`.
cost · OpportunityCost
`Free` | `Paid`. الفرص المدفوعة تعرض chip للتكلفة.

حقول دورة الحياة

deadlineAt · ISO string · اختياري
تاريخ إغلاق التقديم. NULL = rolling (لا موعد ثابت). تقود حساب الحالة.
publishedAt · ISO string
متى دخلت هذه الفرصة Radar.
lastVerifiedAt · ISO string · اختياري
متى أعاد محرّر آخر فحص أن الفرصة لا تزال نشطة وأن الحقول دقيقة. تقود مؤشّرات حداثة البيانات.

flags تحريرية / تجارية

  • `isSponsored?` — placement مدفوع. شريط featured + chip Sponsored + أولوية فرز.
  • `isVerified?` — منظِّم موثّق-من-المحرّر + برنامج نشط. مطلوب للـ entries الإنتاجية.
  • `fundingAvailable?` — الفرصة تحمل فائدة نقدية. تعرض chip نجمة-مال.
  • `applicationUrl · string` — وجهة التقديم الخارجية. CTA Apply يفتحها في tab جديد.

كيانات فرعية منظَّمة

  • `organizer: OpportunityOrganizer` — الاسم، النوع، الدولة، شعار اختياري + موقع. تظهر كسطر المنظِّم على الكروت + التفاصيل.
  • `benefits: OpportunityBenefit[]` — كتل فوائد منظَّمة.
  • `eligibility: OpportunityEligibilityItem[]` — معايير أهلية منظَّمة.
  • `requirements: OpportunityRequirementItem[]` — ما يجب أن يحضّره المؤسس.
  • `timeline: OpportunityTimelineStep[]` — خطوات دورة الحياة المرتّبة.
  • `sponsors?: OpportunitySponsor[]` — علامات شركاء/رعاة مرتبطة بالفرصة (مختلفة عن flag isSponsored على مستوى المنصة).