توثيق الموديولز
حقول البيانات
الكيانات، الحقول، الأنواع.
مكتمل
واجهة `EditorialArticle` (المعرَّفة في `core/models/editorial.model.ts`) هي شكل الكيان القياسي. كل حقل يُربط إمّا بعنصر عرض منشور، أو mention عابر للموديولز، أو flag سير عمل تحريري.
حقول مطلوبة
- id · string
- معرّف مستقرّ. الصيغة: `art-<slug>`. مستخدم في Cross-module mentions و JSON-LD @id.
- slug · string
- slug مستقرّ في الـ URL. الصيغة: `YYYY-MM-DD-kebab-case-title`. بادئة التاريخ تحفظ الترتيب الزمني بالـ URL.
- type · EditorialType
- واحد من: `news` | `analysis` | `commentary` | `interview` | `profile` | `guide`. يقود eyebrow النوع و JSON-LD @type (news → NewsArticle، الباقي → Article).
- title · Bilingual
- `{ en: string; ar: string }`. كلاهما مطلوب. حدّ أقصى 80 حرفاً لكل locale (موصى به).
- dek · Bilingual
- sub-headline / standfirst. يحاكي meta description لـ SEO. هدف 140-160 حرف.
- bodyHtml · Bilingual
- HTML مُولَّد مسبقاً. مُعقَّم عند العرض عبر SafeHtmlPipe. مكتوب بـ markdown ثم مُجمَّع لـ HTML في الـ Pipeline التحريري.
- topic · EditorialTopic
- واحد من: `funding` | `sector-report` | `founder-story` | `ecosystem` | `policy` | `product` | `market-expansion` | `leadership` | `hiring`.
- author · Bilingual
- سطر الكاتب. ثنائي اللغة لأن الأسماء العربية والإنجليزية تختلف أحياناً في النقل الصوتي.
- publishedAt · string (ISO)
- تاريخ النشر. يقود `datePublished` في JSON-LD والتاريخ المرئي على سطر الكاتب.
- readingTimeMinutes · number
- يحدّده التحرير، لا يُحسَب آلياً. المحرّرون يتجاوزون وقت القراءة حين يستدعي الموضوع قراءة بطيئة.
حقول اختيارية
- `sector? · string` — وسم القطاع الأساسي. يقود مطابقة تصنيف Cross-module.
- `country? · string` — رمز الدولة ISO-2. يقود الربط الجغرافي.
- `mentionedFounderIds?` / `mentionedStartupIds?` / `mentionedEventIds?` / `mentionedOpportunityIds?` — مصفوفات mention صريحة للكيانات. تغذّي الـ manifest الـ manual لـ Cross-module.
- `authorRole? · Bilingual` — المسمى أو الدور.
- `coverImageUrl?` — غلاف 16:9. fallback إلى نمط SVG تحريري حين يغيب.
- `isFeatured? · boolean` — يطرح المقال في home + أعلى مواضع القائمة.
- `isPractical? · boolean` — زاوية تعلّم عملية. يقود ظهور Founder Files في إشارات Cross-module.
