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

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

منطق الحالة والشارات

كيف تتبدّل الحالات وما الشارات التي تظهر.

مكتمل

حالة الفرصة محسوبة في وقت العرض من `deadlineAt`، ليست مخزَّنة كحقل. طريقة `OpportunityService.computeStatus()` تعيد واحدة من `Open` / `ClosingSoon` / `Closed` / `Rolling` — وكل عنصر بصري (لون الشريط، فئة الـ chip، pill الموعد) يُشتقّ من تلك الحالة.

الحالات المحسوبة الأربع

Open · أخضر (.chip-success، bg-badge-verified)
deadlineAt > اليوم + 7 أيام. الشريط العلوي + chip الحالة + pill الموعد كلها تُعرض ملوّنة بالأخضر.
ClosingSoon · برتقالي (.chip-orange، bg-brand-orange)
deadlineAt ≤ اليوم + 7 أيام (ولا يزال في المستقبل). عاجل. قد يحرّك pill الموعد بنبضة لطيفة.
Closed · رمادي مكتوم (.chip-muted، bg-muted-foreground)
deadlineAt < اليوم. الكرت يبقى مرئياً (لتاريخ كيان SEO/AEO) لكن de-emphasized. CTA Apply مخفي.
Rolling · بنفسجي (.chip-primary، bg-primary)
deadlineAt هو NULL (لا موعد ثابت). الفرصة تقبل التقديمات باستمرار. pill الموعد يعرض "Rolling".

تسميات pill الموعد

  • `or.deadline.rolling` — "Rolling deadline" / "موعد متجدّد"
  • `or.deadline.closed` — "Closed" / "أُغلق"
  • `or.deadline.today` — "Closes today" / "ينتهي اليوم"
  • `or.deadline.inDays` — "Closes in {n} days" / "ينتهي خلال {n} أيام" (حين ≤ 7 أيام)
  • `or.deadline.on` — "Closes on {date}" / "ينتهي في {date}" (حين 8-60 يوم)
  • `or.deadline.openUntil` — "Open until {date}" / "مفتوحة حتى {date}" (حين > 60 يوم)