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

Developer Page Specifications

Status Logic

Open / ClosingSoon / Rolling / Closed computation rules + sponsored/verified stored flags.

مكتمل

الحالة محتسبة، ليست مُخَزَّنة — باستثناء واحد. الحالات الأربع الأساسية (Open / ClosingSoon / Rolling / Closed) تَشتقّ من DeadlineDate + IsRolling عند كل قراءة. IsSponsored و IsVerified علامتان bool مُخَزَّنتان يَضبطهما admin. مَهمّة ليلية تَحفظ الحالة المحتسبة في العمود للفلترة السريعة، لكن كل قراءة لا تزال تُعيد الحساب للدفاع ضد الانحراف.

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

Open
IsRolling = false و DeadlineDate > NOW() + INTERVAL '7 days'. الحالة الافتراضية لفرصة مستقبلية مُتحقَّق منها مع موعد أكثر من أسبوع بعيد.
ClosingSoon
IsRolling = false و DeadlineDate BETWEEN NOW() AND NOW() + INTERVAL '7 days'. يُحَفِّز صبغة warning + pill "Closing soon" + ترقية تسمية CTA "Apply (closing soon)".
Rolling
IsRolling = true. DeadlineDate يُتجاهَل. الكروت تُرسم بـ accent بنفسجي وتسمية "Rolling applications".
Closed
IsRolling = false و DeadlineDate < NOW(). الكروت تَفقد التشبّع إلى opacity 60%، CTA "Apply" يُعطَّل. مُستثناة-بالفلتر من العرض الافتراضي Status=all؛ تَظهر فقط حين المستخدم يُفلتر صراحة Status=closed.

علامات تحريرية مُخَزَّنة

IsSponsored
bool مُخَزَّن. مضبوط حين رعاية تجارية تُغطّي وضع هذه الفرصة. يَرسم pill "SPONSORED" + شريط إفصاح الراعي في أعلى جسم التفاصيل. المعيار التحريري لا يزال يَنطبق — الرعاية تَشتري الوضع، ليس فحص-حقائق متساهل.
IsVerified
bool مُخَزَّن. مضبوط بعد مرور التحقّق التحريري 3-بوّابات (سلطة المصدر · دقّة التفاصيل · صلة منظومية — انظر عقيدة التحقّق §9.6). يَقود ✓ chip أخضر.

القابلية للتكوين

  • نافذة ClosingSoon افتراضي = 7 أيام. قابلة للتكوين عبر FeatureFlag.opportunityClosingSoonDays (admin يَستطيع التغيير لـ 5 أو 14 عالمياً).
  • حد الأرشفة التلقائية لـ Closed = 180 يوم بعد DeadlineDate. بعد ذلك، الصف يَبقى IsActive=true وقابل-للاستعلام، لكن يَنتقل لسطح admin "archive" منفصل ومُستثنى من القائمة افتراضياً.

اعتبارات المنطقة الزمنية

DeadlineDate يُخَزَّن دائماً في UTC (timestamptz). منطق العرض يُحَوِّل لمحلّية المشاهد. لكن احتساب الحالة يَستخدم دائماً UTC NOW() — أبداً ساعة المشاهد. مؤسّس في القاهرة في 11:55م يَرى نفس حالة Closed كمؤسّس في سان فرانسيسكو في 12:55م UTC. هذا مهم للعدالة — كل مُتقدِّم عالمياً يَرى النافذة تُغلَق في نفس اللحظة.