From 7ff8689a7255358c7c5d916f3a8d7b4364e7521e Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Fri, 3 Jul 2026 11:29:36 +0900 Subject: [PATCH] refactor: unify inquiry status strings using constants (P1-06) 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 --- .../Services/InquiryStatusMapper.cs | 7 +++++++ .../Admin/Pages/Inquiries/InquiryDetail.razor | 3 ++- .../Admin/Pages/Inquiries/InquiryList.razor | 11 ++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/TaxBaik.Application/Services/InquiryStatusMapper.cs b/src/TaxBaik.Application/Services/InquiryStatusMapper.cs index 8073e1e..7b6a038 100644 --- a/src/TaxBaik.Application/Services/InquiryStatusMapper.cs +++ b/src/TaxBaik.Application/Services/InquiryStatusMapper.cs @@ -4,6 +4,13 @@ using TaxBaik.Domain.Enums; 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 Labels = new() { ["new"] = "신규", diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryDetail.razor b/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryDetail.razor index e6df5f3..ffdc1f7 100644 --- a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryDetail.razor +++ b/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryDetail.razor @@ -1,6 +1,7 @@ @page "/admin/inquiries/{InquiryId:int}" @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @attribute [Authorize] +@using TaxBaik.Application.Services @using TaxBaik.Web.Services @inject IInquiryBrowserClient InquiryClient @inject NavigationManager Navigation @@ -179,7 +180,7 @@ else if (clientId > 0) { inquiry.ClientId = clientId; - inquiry.Status = "consulting"; + inquiry.Status = InquiryStatusMapper.StatusConsulting; Snackbar.Add("고객 카드가 생성되었습니다.", Severity.Success); } else diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryList.razor b/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryList.razor index b0a722b..7aefb00 100644 --- a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryList.razor +++ b/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryList.razor @@ -1,6 +1,7 @@ @page "/admin/inquiries" @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @attribute [Authorize] +@using TaxBaik.Application.Services @using TaxBaik.Web.Services @inject IInquiryBrowserClient InquiryClient @@ -19,19 +20,19 @@ - + - + - + - + - +