[Applications] Applicant pipeline: employer accept/reject + status to applicant
CI/CD / CI · dotnet build (push) Successful in 43s
CI/CD / Deploy · hamkadr (push) Successful in 43s

InterestEvent gains a Status (ApplicationStatus: Interested→Accepted/Rejected; migration, default Interested). Employer/Listings shows each applicant's status with پذیرفتن/رد buttons (ownership-checked handlers update the status and notify the applicant via bell/SSE/push linking to the listing). The کارجو panel (/Me) now shows a status badge (در انتظار بررسی / پذیرفته شد / رد شد) on each applied shift/job. Reusable _ApplicantRow partial for the employer list.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-04 21:27:53 +03:30
parent 60c1997642
commit 167d263560
10 changed files with 1373 additions and 7 deletions
@@ -0,0 +1,26 @@
@model JobsMedical.Web.Pages.Employer.ListingsModel.Applicant
@{
var s = Model.Status;
}
<li style="margin-bottom:8px;">
<span>@(Model.Name ?? "کاربر") — <span dir="ltr">@JalaliDate.ToPersianDigits(Model.Phone)</span></span>
@if (s == JobsMedical.Web.Models.ApplicationStatus.Accepted)
{
<span class="badge badge-verified">✓ پذیرفته شد</span>
}
else if (s == JobsMedical.Web.Models.ApplicationStatus.Rejected)
{
<span class="badge badge-gender">رد شد</span>
}
else
{
<span style="display:inline-flex; gap:6px; margin-inline-start:8px; vertical-align:middle;">
<form method="post" asp-page-handler="Accept" asp-route-eventId="@Model.EventId" style="display:inline;">
<button type="submit" class="btn btn-accent" style="padding:3px 12px; font-size:12px;">پذیرفتن</button>
</form>
<form method="post" asp-page-handler="Reject" asp-route-eventId="@Model.EventId" style="display:inline;">
<button type="submit" class="btn btn-outline" style="padding:3px 12px; font-size:12px; color:var(--danger); border-color:var(--danger);">رد</button>
</form>
</span>
}
</li>