79492184d0
- WBS-CRM-02: 상담 이력 (consultations 테이블 V008, ClientDetail.razor) - WBS-CRM-03: 문의→고객 전환 (V009 client_id FK, InquiryDetail 고객등록 버튼) - WBS-CRM-04: 신고 일정 캘린더 (tax_filings 테이블 V010, TaxFilingList.razor) - WBS-CRM-05: 문의 상태 5단계 확장 (V011, InquiryStatus enum, InquiryList 탭) - WBS-MKT-04: 시즌 시뮬레이터 어드민 페이지 (SeasonSimulator.razor) - WBS-UX-04: 개인정보처리방침 /taxbaik/privacy, 이용약관 /taxbaik/terms - Dashboard.razor 마감 임박 신고 위젯 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
namespace TaxBaik.Application.Services;
|
|
|
|
using TaxBaik.Domain.Enums;
|
|
|
|
public static class InquiryStatusMapper
|
|
{
|
|
public static readonly Dictionary<string, string> Labels = new()
|
|
{
|
|
["new"] = "신규",
|
|
["consulting"] = "상담중",
|
|
["contracted"] = "계약완료",
|
|
["rejected"] = "거절",
|
|
["closed"] = "종결",
|
|
};
|
|
|
|
public static string ToStorageValue(InquiryStatus status) => status switch
|
|
{
|
|
InquiryStatus.New => "new",
|
|
InquiryStatus.Consulting => "consulting",
|
|
InquiryStatus.Contracted => "contracted",
|
|
InquiryStatus.Rejected => "rejected",
|
|
InquiryStatus.Closed => "closed",
|
|
_ => throw new ArgumentOutOfRangeException(nameof(status), status, null)
|
|
};
|
|
|
|
public static bool TryParse(string? value, out InquiryStatus status)
|
|
{
|
|
var key = value?.Trim().ToLowerInvariant();
|
|
status = key switch
|
|
{
|
|
"new" => InquiryStatus.New,
|
|
"consulting" => InquiryStatus.Consulting,
|
|
"contracted" => InquiryStatus.Contracted,
|
|
"rejected" => InquiryStatus.Rejected,
|
|
"closed" => InquiryStatus.Closed,
|
|
_ => default
|
|
};
|
|
return key is "new" or "consulting" or "contracted" or "rejected" or "closed";
|
|
}
|
|
}
|