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

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

قواعد التحقق

الحقول المطلوبة، الصيغ، النطاقات.

مكتمل

الفعالية CalendarEvent تمرّ عبر ثلاث طبقات تحقّق قبل النشر: هيكلية (الحقول المطلوبة + الصيغة)، تحريرية (تحقّق 3 بوّابات)، وسلامة (المراجع المتبادلة تُحلّ، المناطق الزمنية صالحة، التواريخ متماسكة). الثلاث يجب أن تمرّ.

التحقّق الهيكلي

  • مطلوب: id، slug، title.en + title.ar، shortDescription.en + .ar، organizerName، organizerType، country، mode، startDate، timezone، category، status، audiences (≥1)، stageRelevance (≥1)، verificationStatus.
  • على الأقل واحد من: websiteUrl، registrationUrl، applyUrl، contactEmail. بدون قناة خارجية، الفعالية لا يمكنها التقمّع وما يجب نشرها.
  • slug فريد عبر مجموعة البيانات كلها، kebab-case، ASCII فقط.
  • startDate، endDate، applicationDeadline، registrationDeadline ISO 8601 صالح مع إزاحة منطقة زمنية صريحة.
  • timezone هو معرّف IANA منطقة (مثلاً "Africa/Cairo"، "Asia/Riyadh"). ليس "GMT+3" — ذلك يفقد الوعي بـ DST.

التحقّق التحريري — الـ 3 بوّابات

  1. البوّابة 1 — سلطة المصدر. sourceUrl يشير إلى قناة ذات سلطة: نطاق المنظِّم نفسه، حساب اجتماعي رسمي (مُتحقَّق منه)، أو نشرة صحفية مؤكَّدة. صفحات الـ aggregator لا تُحسَب.
  2. البوّابة 2 — دقّة التفاصيل. التاريخ، المدينة، المكان، اسم المنظِّم، المواعيد مؤكَّدة مقابل المصدر. لو محتوى URL المصدر يخالف الإدخال، الإدخال خاطئ، ليس المصدر.
  3. البوّابة 3 — صلة منظومية. الفعالية فعلاً عن شركات ناشئة / مؤسّسين / مستثمرين / مشغّلي منظومة في الـ MENA. مؤتمرات تكنولوجيا عامّة، فعاليات مبيعات شركات، أو فعاليات خارج الـ MENA تفشل هذه البوّابة حتى لو حقائقها صحيحة.

تحقّق السلامة

  • endDate ≥ startDate (حين endDate مضبوط).
  • applicationDeadline ≤ startDate (لا يمكنك التقديم بعد بدء الفعالية — ما عدا الدُفعات المتدحرجة، حيث الموعد يمكن أن يغيب).
  • mode='physical' يتطلّب venue أو (city+country). mode='online' يتطلّب onlineUrl. mode='hybrid' يتطلّب كليهما.
  • كل relatedXxxId يُحلّ لسجلّ موجود في موديوله. الـ IDs البالية تُجرَّد وقت الرسم.
  • lastVerifiedAt يجب ضبطه كلّما انتقلت verificationStatus إلى "verified".