Add gender requirement (آقا/خانم/فرقی نمیکند) + employee (کارجو) panel
- Gender enum + GenderRequirement on Shift/JobOpening + Gender on UserPreferences (migration) - Employer PostShift/PostJob + admin Review have a gender select; parser detects آقا/خانم/مرد/زن - Gender badge on cards + detail; gender filter on Shifts/Jobs; gender in preferences - Recommendations exclude listings whose gender requirement conflicts with the person's gender - Two panels: new /Me employee (کارجو) panel (recommendations + saved + applied + prefs) alongside /Employer; nav routes by role; /Account/Profile → /Me Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -76,6 +76,17 @@ public enum ListingKind
|
||||
Job = 1
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gender. On a listing it's the requirement (Any = فرقی نمیکند); on a person it's their gender
|
||||
/// (Any = unspecified).
|
||||
/// </summary>
|
||||
public enum Gender
|
||||
{
|
||||
Any = 0, // فرقی نمیکند / نامشخص
|
||||
Male = 1, // آقا
|
||||
Female = 2 // خانم
|
||||
}
|
||||
|
||||
/// <summary>How ingested listings get onto the site.</summary>
|
||||
public enum IngestionMode
|
||||
{
|
||||
|
||||
@@ -32,6 +32,8 @@ public class JobOpening
|
||||
[MaxLength(1000)]
|
||||
public string? Requirements { get; set; } // شرایط احراز
|
||||
|
||||
public Gender GenderRequirement { get; set; } = Gender.Any; // جنسیت مورد نیاز
|
||||
|
||||
public ShiftStatus Status { get; set; } = ShiftStatus.Open;
|
||||
public ShiftSource Source { get; set; } = ShiftSource.Admin;
|
||||
|
||||
|
||||
@@ -29,6 +29,8 @@ public class Shift
|
||||
public int? SharePercent { get; set; } // سهم درآمد (٪)؛ مثلاً ۵۰. میتواند همراه مبلغ هم باشد
|
||||
public PayType PayType { get; set; } = PayType.PerShift;
|
||||
|
||||
public Gender GenderRequirement { get; set; } = Gender.Any; // جنسیت مورد نیاز
|
||||
|
||||
[MaxLength(1500)]
|
||||
public string? Description { get; set; } // توضیحات
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ public class UserPreferences
|
||||
|
||||
public ShiftType? PreferredShiftType { get; set; } // نوع شیفت ترجیحی
|
||||
public long? MinPay { get; set; } // حداقل حقوق مورد انتظار (تومان)
|
||||
public Gender Gender { get; set; } = Gender.Any; // جنسیت کارجو (برای تطبیق با نیاز آگهی)
|
||||
|
||||
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user