توثيق الموديولز
منطق الحالة والشارات
كيف تتبدّل الحالات وما الشارات التي تظهر.
مكتمل
حالة الفعالية مُحتسَبة في الغالب، ليست مُخزَّنة. 5 من 7 قيم EventStatus مُشتقَّة من حساب الزمن (upcoming / open / closing-soon / live / completed). فقط 2 (postponed / cancelled) overrides يدوية على محرّر ضبطها صراحةً. هذا يُبقي الشارات دقيقة بدون حاجة تحديثات يدوية دائمة.
الحالات المُحتسَبة
- upcoming
- startDate في المستقبل و (applicationDeadline null أو applicationDeadline > now + 7 يوم). الحالة الافتراضية لفعالية مُتحقَّق منها مستقبلية بدون موعد عاجل.
- open
- لفئات accelerator/incubator/pitch-competition: applicationDeadline ≥ now + 7 يوم. التسجيل / التقديم يقبل وليس عاجلاً بعد.
- closing-soon
- applicationDeadline أو registrationDeadline ضمن الـ 7 أيام القادمة (ولا تزال في المستقبل). يُحفِّز صبغة warning + ترقية CTA "Apply (closing soon)".
- live
- now ≥ startDate و (endDate null أو now ≤ endDate). يُرسَم بحركة نبضة accent على الشارة.
- completed
- endDate < now (أو، لو لا endDate، startDate + 1 يوم < now). الشارة تفقد التشبّع؛ الفعالية تبقى قابلة للاكتشاف للسجلّ التاريخي.
الحالات المُتجاوَزة يدوياً
- postponed
- يضبطه محرّر. الفعالية كانت مجدولة لكن تم تأجيلها بدون تأكيد تاريخ جديد. Banner يظهر في الـ hero: "This event has been postponed. We’re tracking the new date."
- cancelled
- يضبطه محرّر. الفعالية مُلغاة دائماً. الـ JSON-LD يُصدر eventStatus=https://schema.org/EventCancelled. الـ CTAs تصبح مُعطَّلة. الفلاتر تستثني cancelled افتراضياً.
