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

Developer Page Specifications

Status Logic

5 computed statuses (upcoming/open/closing-soon/live/completed) + 2 manual overrides (postponed/cancelled). Timezone-aware.

مكتمل

حالة فعالية التقويم محتسبة في الغالب عند كل قراءة، مع حالتي override يدوي. 5 حالات مُشتقَّة من الزمن (upcoming / open / closing-soon / live / completed). 2 manual overrides (postponed / cancelled). كل الحساب يَستخدم Timezone المُعلَن للفعالية للعدالة عبر الجغرافيا.

الحالات المحتسبة

upcoming
startDate > NOW() ولا موعد ذو-صلة ضمن 7 أيام. الحالة الافتراضية لفعالية مستقبلية مُتحقَّق منها.
open
لفئات accelerator/incubator/pitch-competition: applicationDeadline > NOW() + INTERVAL '7 days'. التسجيل / التقديمات حيّة وليست عاجلة بعد.
closing-soon
applicationDeadline أو registrationDeadline ضمن الـ 7 أيام القادمة و لا تزال > NOW(). يَقود صبغة warning + pill "Closing soon" + ترقية تسمية CTA.
live
NOW() >= startDate و (endDate IS NULL أو NOW() <= endDate). يَرسم حركة accent-pulse على الشارة.
completed
endDate < NOW() (أو، لو لا endDate، startDate + 1 يوم < NOW()). الكرت يَفقد التشبّع؛ يَبقى قابلاً للاكتشاف للسجل التاريخي.

حالات Override يدوية

postponed
المحرّر يَضبط صراحةً. banner في hero: "This event has been postponed. We’re tracking the new date." JSON-LD eventStatus=EventPostponed.
cancelled
المحرّر يَضبط صراحةً. banner + CTAs مُعطَّلة. JSON-LD eventStatus=EventCancelled. الاستعلامات الافتراضية للقائمة تَستثني الفعاليات المُلغاة.

إيقاع إعادة التحقّق

  • الفعاليات المُتحقَّق منها الأقدم من 30 يوم منذ LastVerifiedAt أو ضمن 14 يوم من StartDate تُعلَّم تلقائياً لإعادة-تحقّق تحريرية. admin يُعيد ping sourceUrl، يُؤكِّد أن لا شيء تَزحزح، يُحَدِّث LastVerifiedAt.
  • التأجيلات التي تَتسلّل تُسَبِّب أسوأ ضرر للثقة — إيقاع إعادة التحقّق هو الدفاع.