[Applications] Applicant pipeline: employer accept/reject + status to applicant
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:
@@ -86,6 +86,13 @@ public class NotificationService
|
||||
$"/Employer/Listings?facilityId={j.FacilityId}");
|
||||
}
|
||||
|
||||
/// <summary>Tell an applicant their application was accepted or rejected.</summary>
|
||||
public Task NotifyApplicantStatusAsync(int userId, string listingTitle, bool accepted, string url)
|
||||
{
|
||||
var title = accepted ? "درخواست شما پذیرفته شد ✅" : "درخواست شما رد شد";
|
||||
return AddAsync(new List<int> { userId }, title, listingTitle, url);
|
||||
}
|
||||
|
||||
/// <summary>Users with a non-empty preference that matches the listing (via their visitor link).</summary>
|
||||
private async Task<List<int>> MatchingUserIdsAsync(int roleId, int cityId, ShiftType? shiftType)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user