refactor: unify inquiry status strings using constants (P1-06)
TaxBaik CI/CD / build-and-deploy (push) Successful in 3m33s

Problem: Inquiry status values were hardcoded as strings in multiple places:
- InquiryList.razor: Status="new", Status="consulting", etc.
- InquiryDetail.razor: inquiry.Status = "consulting"
- Makes it error-prone to update status values globally

Solution:
- Add public const fields to InquiryStatusMapper for all status values
- Replace hardcoded strings with constants (StatusNew, StatusConsulting, etc.)
- InquiryList and InquiryDetail now use mapper constants

Result: Single source of truth for status values. Changing a status value now
requires only updating InquiryStatusMapper, and all usages automatically update.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 11:29:36 +09:00
parent b2dd217017
commit 7ff8689a72
3 changed files with 15 additions and 6 deletions
@@ -4,6 +4,13 @@ using TaxBaik.Domain.Enums;
public static class InquiryStatusMapper public static class InquiryStatusMapper
{ {
// Status storage values (database)
public const string StatusNew = "new";
public const string StatusConsulting = "consulting";
public const string StatusContracted = "contracted";
public const string StatusRejected = "rejected";
public const string StatusClosed = "closed";
public static readonly Dictionary<string, string> Labels = new() public static readonly Dictionary<string, string> Labels = new()
{ {
["new"] = "신규", ["new"] = "신규",
@@ -1,6 +1,7 @@
@page "/admin/inquiries/{InquiryId:int}" @page "/admin/inquiries/{InquiryId:int}"
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@attribute [Authorize] @attribute [Authorize]
@using TaxBaik.Application.Services
@using TaxBaik.Web.Services @using TaxBaik.Web.Services
@inject IInquiryBrowserClient InquiryClient @inject IInquiryBrowserClient InquiryClient
@inject NavigationManager Navigation @inject NavigationManager Navigation
@@ -179,7 +180,7 @@ else
if (clientId > 0) if (clientId > 0)
{ {
inquiry.ClientId = clientId; inquiry.ClientId = clientId;
inquiry.Status = "consulting"; inquiry.Status = InquiryStatusMapper.StatusConsulting;
Snackbar.Add("고객 카드가 생성되었습니다.", Severity.Success); Snackbar.Add("고객 카드가 생성되었습니다.", Severity.Success);
} }
else else
@@ -1,6 +1,7 @@
@page "/admin/inquiries" @page "/admin/inquiries"
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@attribute [Authorize] @attribute [Authorize]
@using TaxBaik.Application.Services
@using TaxBaik.Web.Services @using TaxBaik.Web.Services
@inject IInquiryBrowserClient InquiryClient @inject IInquiryBrowserClient InquiryClient
@@ -19,19 +20,19 @@
<InquiryTable Inquiries="allInquiries" Status="" /> <InquiryTable Inquiries="allInquiries" Status="" />
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="신규"> <MudTabPanel Text="신규">
<InquiryTable Inquiries="allInquiries" Status="new" /> <InquiryTable Inquiries="allInquiries" Status="@InquiryStatusMapper.StatusNew" />
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="상담중"> <MudTabPanel Text="상담중">
<InquiryTable Inquiries="allInquiries" Status="consulting" /> <InquiryTable Inquiries="allInquiries" Status="@InquiryStatusMapper.StatusConsulting" />
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="계약완료"> <MudTabPanel Text="계약완료">
<InquiryTable Inquiries="allInquiries" Status="contracted" /> <InquiryTable Inquiries="allInquiries" Status="@InquiryStatusMapper.StatusContracted" />
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="거절"> <MudTabPanel Text="거절">
<InquiryTable Inquiries="allInquiries" Status="rejected" /> <InquiryTable Inquiries="allInquiries" Status="@InquiryStatusMapper.StatusRejected" />
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="종결"> <MudTabPanel Text="종결">
<InquiryTable Inquiries="allInquiries" Status="closed" /> <InquiryTable Inquiries="allInquiries" Status="@InquiryStatusMapper.StatusClosed" />
</MudTabPanel> </MudTabPanel>
</MudTabs> </MudTabs>
</AdminDataPanel> </AdminDataPanel>