Review/publish: multi-select roles → one listing per role

An ad can cover several roles (e.g. «پرستار سالمند و کودک و همراه بیمار»).
The role dropdown is now a checkbox multi-select; on publish we fan out and
create one Shift/Job/Talent per selected role (mirrors the auto-ingest
fan-out). Jobs get a per-role title when multiple are chosen; talent
listings each get their own contact rows; all created items notify matches.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-08 22:03:09 +03:30
parent 5e5d7f80ef
commit 1e96526bd9
3 changed files with 100 additions and 86 deletions
@@ -62,13 +62,17 @@
<p class="muted" style="font-size:11px; margin:4px 0 0;">اگر مرکز در فهرست نیست، نامش را اینجا بنویس تا به‌صورت «تأییدنشده» ساخته شود.</p>
</div>
<div class="filter-group">
<label>نقش</label>
<select name="RoleId">
<label>نقش‌ها (می‌توانی چند مورد انتخاب کنی)</label>
<div class="role-checks">
@foreach (var role in Model.Roles)
{
<option value="@role.Id" selected="@(Model.RoleId == role.Id)">@role.Name</option>
<label class="role-check">
<input type="checkbox" name="RoleIds" value="@role.Id" checked="@(Model.RoleIds.Contains(role.Id))" />
<span>@role.Name</span>
</label>
}
</select>
</div>
<p class="muted" style="font-size:11px; margin:4px 0 0;">برای آگهی چندتخصصی (مثل «پرستار سالمند و کودک») همه‌ی نقش‌ها را تیک بزن — برای هر نقش یک آگهی جدا ساخته می‌شود.</p>
</div>
<div class="filter-group">