@page
@model JobsMedical.Web.Pages.Employer.ListingsModel
@{
    ViewData["Title"] = "مدیریت آگهی‌ها";
    string StatusLabel(ShiftStatus s) => s switch
    {
        ShiftStatus.Open => "باز",
        ShiftStatus.Filled => "پر شده",
        ShiftStatus.Expired => "منقضی",
        _ => "لغو شده",
    };
}

<div class="page-head">
    <div class="container">
        <h1>مدیریت آگهی‌ها — @Model.Facility?.Name</h1>
        <p class="muted">
            <a asp-page="/Employer/Index">← بازگشت به پنل</a>
            · <a asp-page="/Employer/PostShift">+ شیفت</a>
            · <a asp-page="/Employer/PostJob">+ استخدام</a>
        </p>
    </div>
</div>

<div class="container section">
    <h2 style="font-size:20px;">شیفت‌ها</h2>
    @if (Model.Shifts.Count == 0)
    {
        <div class="card empty-state">هنوز شیفتی منتشر نکرده‌ای.</div>
    }
    else
    {
        foreach (var row in Model.Shifts)
        {
            var s = row.Shift;
            <div class="card card-pad" style="margin-bottom:12px;">
                <div class="row" style="display:flex; justify-content:space-between; align-items:center;">
                    <strong>@s.Role?.Name — @JalaliDate.ToLongDate(s.Date) — @JalaliDate.Time(s.StartTime)</strong>
                    <span class="badge @(s.Status == ShiftStatus.Open ? "badge-verified" : "badge-type")">@StatusLabel(s.Status)</span>
                </div>
                <p class="muted" style="margin:6px 0;">@JalaliDate.Toman(s.PayAmount)</p>

                <div style="border-top:1px solid var(--line); padding-top:10px; margin-top:6px;">
                    <strong style="font-size:14px;">متقاضیان (@JalaliDate.ToPersianDigits((row.Applicants.Count + row.Guests).ToString()))</strong>
                    @if (row.Applicants.Count == 0 && row.Guests == 0)
                    {
                        <p class="muted" style="font-size:13px; margin:6px 0 0;">هنوز کسی اعلام تمایل نکرده.</p>
                    }
                    else
                    {
                        <ul style="margin:6px 0 0; padding-inline-start:18px; font-size:13.5px;">
                            @foreach (var a in row.Applicants)
                            {
                                <li>@(a.Name ?? "کاربر") — <span dir="ltr">@JalaliDate.ToPersianDigits(a.Phone)</span></li>
                            }
                            @if (row.Guests > 0)
                            {
                                <li class="muted">@JalaliDate.ToPersianDigits(row.Guests.ToString()) بازدیدکننده‌ی مهمان (بدون ورود)</li>
                            }
                        </ul>
                    }
                </div>

                <div style="display:flex; gap:8px; margin-top:12px;">
                    @if (s.Status == ShiftStatus.Open)
                    {
                        <form method="post"><button asp-page-handler="CloseShift" asp-route-id="@s.Id" class="btn btn-outline" style="padding:6px 12px;">بستن (پر شد)</button></form>
                    }
                    else
                    {
                        <form method="post"><button asp-page-handler="ReopenShift" asp-route-id="@s.Id" class="btn btn-outline" style="padding:6px 12px;">بازگشایی</button></form>
                    }
                    <form method="post" onsubmit="return confirm('این شیفت حذف شود؟');"><button asp-page-handler="DeleteShift" asp-route-id="@s.Id" class="btn btn-outline" style="padding:6px 12px; color:var(--danger); border-color:var(--danger);">حذف</button></form>
                </div>
            </div>
        }
    }

    <h2 style="font-size:20px; margin-top:30px;">موقعیت‌های استخدامی</h2>
    @if (Model.Jobs.Count == 0)
    {
        <div class="card empty-state">هنوز موقعیتی منتشر نکرده‌ای.</div>
    }
    else
    {
        foreach (var row in Model.Jobs)
        {
            var j = row.Job;
            <div class="card card-pad" style="margin-bottom:12px;">
                <div class="row" style="display:flex; justify-content:space-between; align-items:center;">
                    <strong>@j.Title — @j.Role?.Name</strong>
                    <span class="badge @(j.Status == ShiftStatus.Open ? "badge-verified" : "badge-type")">@StatusLabel(j.Status)</span>
                </div>
                <div style="border-top:1px solid var(--line); padding-top:10px; margin-top:8px;">
                    <strong style="font-size:14px;">متقاضیان (@JalaliDate.ToPersianDigits((row.Applicants.Count + row.Guests).ToString()))</strong>
                    @if (row.Applicants.Count == 0 && row.Guests == 0)
                    {
                        <p class="muted" style="font-size:13px; margin:6px 0 0;">هنوز کسی اعلام تمایل نکرده.</p>
                    }
                    else
                    {
                        <ul style="margin:6px 0 0; padding-inline-start:18px; font-size:13.5px;">
                            @foreach (var a in row.Applicants)
                            {
                                <li>@(a.Name ?? "کاربر") — <span dir="ltr">@JalaliDate.ToPersianDigits(a.Phone)</span></li>
                            }
                            @if (row.Guests > 0)
                            {
                                <li class="muted">@JalaliDate.ToPersianDigits(row.Guests.ToString()) بازدیدکننده‌ی مهمان</li>
                            }
                        </ul>
                    }
                </div>
                <div style="display:flex; gap:8px; margin-top:12px;">
                    @if (j.Status == ShiftStatus.Open)
                    {
                        <form method="post"><button asp-page-handler="CloseJob" asp-route-id="@j.Id" class="btn btn-outline" style="padding:6px 12px;">بستن</button></form>
                    }
                    else
                    {
                        <form method="post"><button asp-page-handler="ReopenJob" asp-route-id="@j.Id" class="btn btn-outline" style="padding:6px 12px;">بازگشایی</button></form>
                    }
                    <form method="post" onsubmit="return confirm('این موقعیت حذف شود؟');"><button asp-page-handler="DeleteJob" asp-route-id="@j.Id" class="btn btn-outline" style="padding:6px 12px; color:var(--danger); border-color:var(--danger);">حذف</button></form>
                </div>
            </div>
        }
    }
</div>
