Add gender requirement (آقا/خانم/فرقی نمی‌کند) + employee (کارجو) panel
CI/CD / CI · dotnet build (push) Successful in 6m23s
CI/CD / Deploy · hamkadr (push) Failing after 6m30s

- 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:
soroush.asadi
2026-06-04 00:19:32 +03:30
parent 8f5d926d42
commit 6cfdd16c42
35 changed files with 1177 additions and 123 deletions
+11
View File
@@ -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
{
+2
View File
@@ -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;
+2
View File
@@ -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;