@page "/portal"
@model TaxBaik.Web.Pages.Portal.IndexModel
@{
    ViewData["Title"] = "마이 포털 - 세무사 백원숙";
    ViewData["Description"] = "고객님의 세무 신고 일정과 상담 이력을 실시간으로 확인하실 수 있는 마이페이지입니다.";
}

<div class="bg-light py-5">
    <div class="container">
        <!-- 상단 헤더 & 환영 문구 -->
        <div class="d-flex flex-wrap justify-content-between align-items-center mb-5 pb-4 border-bottom">
            <div>
                <p class="text-primary fw-bold mb-1">TaxBaik My Portal</p>
                <h1 class="display-6 fw-bold text-dark">안녕하세요, @(User.Identity?.Name)님!</h1>
                @if (Model.ClientInfo != null)
                {
                    <p class="text-muted mb-0">
                        <i class="bi bi-building"></i> @(string.IsNullOrEmpty(Model.ClientInfo.CompanyName) ? "개인 고객" : Model.ClientInfo.CompanyName) 
                        | <i class="bi bi-telephone"></i> @Model.ClientInfo.Phone
                    </p>
                }
            </div>
            <div class="mt-3 mt-sm-0">
                <form method="post" action="/taxbaik/portal/logout" class="d-inline">
                    @Html.AntiForgeryToken()
                    <button type="submit" class="btn btn-outline-danger btn-sm">
                        <i class="bi bi-box-arrow-right"></i> 로그아웃
                    </button>
                </form>
            </div>
        </div>

        @if (Model.ClientInfo == null)
        {
            <!-- 연동 대기 경고 -->
            <div class="card border-warning shadow-sm mb-5">
                <div class="card-body p-5 text-center">
                    <div class="mb-4">
                        <span class="display-1 text-warning"><i class="bi bi-exclamation-triangle-fill"></i></span>
                    </div>
                    <h3 class="fw-bold text-dark mb-3">고객 정보 연동 대기 중</h3>
                    <p class="text-muted max-width-md mx-auto mb-4">
                        가입하신 계정 정보(이메일/연락처)와 일치하는 세무 대리 고객 레코드를 찾지 못했습니다.<br />
                        세무사 측에서 고객 등록을 완료하거나 관리자 백오피스에서 이메일/전화번호가 일치하도록 지정하면 자동으로 포털 데이터가 활성화됩니다.
                    </p>
                    <a href="/taxbaik/contact" class="btn btn-primary px-4 py-2">
                        <i class="bi bi-chat-dots"></i> 세무사에게 문의하기
                    </a>
                </div>
            </div>
        }
        else
        {
            <div class="row g-4">
                <!-- 왼쪽: 세무 신고 현황 (Tax Filings) -->
                <div class="col-lg-8">
                    <div class="card glass-card mb-4">
                        <div class="card-body p-4">
                            <div class="d-flex justify-content-between align-items-center mb-4">
                                <h3 class="h5 fw-bold text-dark mb-0">
                                    <i class="bi bi-calendar-check text-primary me-2"></i> 나의 세무 신고 현황
                                </h3>
                                <span class="badge bg-secondary">총 @(Model.Filings.Count)건</span>
                            </div>

                            @if (!Model.Filings.Any())
                            {
                                <div class="text-center py-5 text-muted">
                                    <i class="bi bi-folder-x display-4 d-block mb-3 text-secondary"></i>
                                    등록된 세무 신고 일정이 없습니다.
                                </div>
                            }
                            else
                            {
                                <div class="table-responsive">
                                    <table class="table table-hover align-middle">
                                        <thead class="table-light">
                                            <tr>
                                                <th scope="col">신고 종류</th>
                                                <th scope="col">신고 기한</th>
                                                <th scope="col">진행 상태</th>
                                                <th scope="col">메모</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            @foreach (var filing in Model.Filings)
                                            {
                                                var dDay = (filing.DueDate - DateTime.Today).Days;
                                                var statusClass = filing.Status switch
                                                {
                                                    "filed" => "bg-success-subtle text-success",
                                                    "overdue" => "bg-danger-subtle text-danger",
                                                    _ => "bg-warning-subtle text-warning-emphasis"
                                                };
                                                var statusLabel = filing.Status switch
                                                {
                                                    "filed" => "신고 완료",
                                                    "overdue" => "기한 초과",
                                                    _ => $"D-{dDay}"
                                                };

                                                <tr>
                                                    <td>
                                                        <span class="fw-bold text-dark">@filing.FilingType</span>
                                                    </td>
                                                    <td>
                                                        <span>@filing.DueDate.ToString("yyyy-MM-dd")</span>
                                                    </td>
                                                    <td>
                                                        <span class="badge @statusClass px-2.5 py-1.5 fs-7">@statusLabel</span>
                                                    </td>
                                                    <td class="text-muted small">
                                                        @(string.IsNullOrEmpty(filing.Memo) ? "-" : filing.Memo)
                                                    </td>
                                                </tr>
                                            }
                                        </tbody>
                                    </table>
                                </div>
                            }
                        </div>
                    </div>
                </div>

                <!-- 오른쪽: 상담 이력 요약 (Consulting Activities) -->
                <div class="col-lg-4">
                    <div class="card glass-card">
                        <div class="card-body p-4">
                            <h3 class="h5 fw-bold text-dark mb-4">
                                <i class="bi bi-chat-text text-primary me-2"></i> 최근 상담 및 지원 이력
                            </h3>

                            @if (!Model.Consultations.Any())
                            {
                                <div class="text-center py-5 text-muted">
                                    <i class="bi bi-chat-square-dots display-4 d-block mb-3 text-secondary"></i>
                                    최근 상담 이력이 없습니다.
                                </div>
                            }
                            else
                            {
                                <div class="timeline ps-2">
                                    @foreach (var activity in Model.Consultations)
                                    {
                                        <div class="timeline-item-modern">
                                            <div class="d-flex justify-content-between align-items-center mb-1">
                                                <span class="badge bg-primary-subtle text-primary small">@activity.ActivityType</span>
                                                <small class="text-muted">@activity.ActivityDate.ToString("yyyy-MM-dd")</small>
                                            </div>
                                            <p class="text-dark small mb-1 fw-semibold">@activity.Description</p>
                                            @if (!string.IsNullOrEmpty(activity.Outcome))
                                            {
                                                <div class="bg-light p-2 rounded small text-muted mt-1">
                                                    <strong>결과:</strong> @activity.Outcome
                                                </div>
                                            }
                                        </div>
                                    }
                                </div>
                            }
                        </div>
                    </div>
                </div>
            </div>
        }
    </div>
</div>
