diff --git a/docs/INDEX.md b/docs/INDEX.md index 1ef3894..e435a1c 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -22,7 +22,7 @@ | 영역 | 라우트/파일 | 기준 | | --- | --- | --- | | Public Home/Blog/Contact | `/`, `/blog`, `/contact` | 서버 사이드 렌더링, SEO 우선, WASM 의존 금지 | -| Admin Dashboard / Customers | `/admin`, `/admin/dashboard`, `/admin/customers/*` | Razor Pages + Cookie Authentication 기준 | +| Admin Dashboard / Clients | `/admin`, `/admin/dashboard`, `/admin/clients/*` | Razor Pages + Cookie Authentication 기준 | | Admin Blog | `/admin/blog`, `/admin/blog/create`, `/admin/blog/{id}/edit` | 현행 Blazor/Web API 경로, 전환 대상 | | Admin Inquiry | `/admin/inquiries`, `/admin/inquiries/create`, `/admin/inquiries/{id}/edit` | 현행 Blazor/Web API 경로, 전환 대상 | | Public API | `/api/*` | 현행 JWT 경로, 브라우저 어드민과 분리 | diff --git a/src/TaxBaik.Web/Pages/Admin/ClientLogs/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/ClientLogs/Index.cshtml index 1867f69..f1695dd 100644 --- a/src/TaxBaik.Web/Pages/Admin/ClientLogs/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/ClientLogs/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.ClientLogs.IndexModel @{ ViewData["Title"] = "클라이언트 로그"; } -클라이언트 로그 + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Create.cshtml b/src/TaxBaik.Web/Pages/Admin/Clients/Create.cshtml new file mode 100644 index 0000000..c93d564 --- /dev/null +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Create.cshtml @@ -0,0 +1,58 @@ +@page +@model TaxBaik.Web.Pages.Admin.Clients.CreateModel +@{ + ViewData["Title"] = "고객 등록"; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Create.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Clients/Create.cshtml.cs new file mode 100644 index 0000000..1b0b73e --- /dev/null +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Create.cshtml.cs @@ -0,0 +1,26 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using TaxBaik.Application.DTOs; +using TaxBaik.Application.Services; +using TaxBaik.Web.Services; + +namespace TaxBaik.Web.Pages.Admin.Clients; + +[Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] +public class CreateModel(ClientService clientService) : PageModel +{ + [BindProperty] + public CreateClientDto Input { get; set; } = new(); + + public IActionResult OnGet() => Page(); + + public async Task OnPostAsync(CancellationToken ct) + { + if (!ModelState.IsValid) + return Page(); + + var id = await clientService.CreateAsync(Input, ct); + return RedirectToPage("/Admin/Clients/Detail", new { id }); + } +} diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml b/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml index eea1f87..4a33528 100644 --- a/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml @@ -1,4 +1,57 @@ @page "{id:int}" @model TaxBaik.Web.Pages.Admin.Clients.DetailModel -@{ ViewData["Title"] = "클라이언트 상세"; } -클라이언트 상세 +@{ + ViewData["Title"] = "고객 상세"; +} + + + + + @if (Model.Client is null) + { + + } + else + { + + + + + + 고객명 + @Model.Client.Name + 회사명 + @Model.Client.CompanyName + 전화 + @Model.Client.Phone + 이메일 + @Model.Client.Email + 상태 + + 서비스 유형 + @Model.Client.ServiceType + 세금 유형 + @Model.Client.TaxType + 유입 경로 + @Model.Client.Source + 등록일 + @Model.Client.CreatedAt.ToString("yyyy-MM-dd HH:mm") + 수정일 + @Model.Client.UpdatedAt.ToString("yyyy-MM-dd HH:mm") + 메모 + @Model.Client.Memo + + + + + + + + 수정 + 목록 + + + + + } + diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml.cs index f996abd..e828703 100644 --- a/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Detail.cshtml.cs @@ -1,7 +1,17 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc.RazorPages; +using TaxBaik.Application.Services; using TaxBaik.Web.Services; -namespace TaxBaik.Web.Pages.Admin.Clients; -[Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] -public class DetailModel : PageModel { } +namespace TaxBaik.Web.Pages.Admin.Clients; + +[Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] +public class DetailModel(ClientService clientService) : PageModel +{ + public TaxBaik.Domain.Entities.Client? Client { get; private set; } + + public async Task OnGetAsync(int id, CancellationToken ct) + { + Client = await clientService.GetByIdAsync(id, ct); + } +} diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml b/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml index 1264ff3..f44ffad 100644 --- a/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml @@ -1,4 +1,62 @@ @page "{id:int}" @model TaxBaik.Web.Pages.Admin.Clients.EditModel -@{ ViewData["Title"] = "클라이언트 수정"; } -클라이언트 수정 +@{ + ViewData["Title"] = "고객 수정"; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 삭제 + diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml.cs index b5424b9..0f812d1 100644 --- a/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Edit.cshtml.cs @@ -1,7 +1,55 @@ using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using TaxBaik.Application.DTOs; +using TaxBaik.Application.Services; using TaxBaik.Web.Services; -namespace TaxBaik.Web.Pages.Admin.Clients; -[Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] -public class EditModel : PageModel { } +namespace TaxBaik.Web.Pages.Admin.Clients; + +[Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] +public class EditModel(ClientService clientService) : PageModel +{ + [BindProperty(SupportsGet = true)] + public int Id { get; set; } + + [BindProperty] + public CreateClientDto Input { get; set; } = new(); + + public async Task OnGetAsync(CancellationToken ct) + { + var client = await clientService.GetByIdAsync(Id, ct); + if (client is null) + return NotFound(); + + Input = new CreateClientDto + { + Name = client.Name, + CompanyName = client.CompanyName, + Phone = client.Phone, + Email = client.Email, + ServiceType = client.ServiceType, + TaxType = client.TaxType, + Status = client.Status, + Source = client.Source, + Memo = client.Memo + }; + + return Page(); + } + + public async Task OnPostAsync(CancellationToken ct) + { + if (!ModelState.IsValid) + return Page(); + + await clientService.UpdateAsync(Id, Input, ct); + return RedirectToPage("/Admin/Clients/Detail", new { id = Id }); + } + + public async Task OnPostDeleteAsync(CancellationToken ct) + { + await clientService.DeleteAsync(Id, ct); + return RedirectToPage("/Admin/Clients/Index"); + } +} diff --git a/src/TaxBaik.Web/Pages/Admin/Clients/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/Clients/Index.cshtml index 9efce1f..3834fc1 100644 --- a/src/TaxBaik.Web/Pages/Admin/Clients/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Clients/Index.cshtml @@ -4,23 +4,13 @@ ViewData["Title"] = "고객 관리"; } - - - - - CRM - 고객 관리 - - - 고객 등록 - - - + + - + - + 검색 @@ -40,17 +30,18 @@ 50 - + 검색 + 초기화 - + - - + + 고객명 회사명 @@ -61,27 +52,31 @@ - @if (Model.Items.Count == 0) - { - - } - else - { - foreach (var item in Model.Items) + @if (Model.Items.Count == 0) { - @item.Name - @item.CompanyName - @item.Phone - - @item.CreatedAt.ToString("yyyy-MM-dd") - - 상세 - 수정 + + } - } + else + { + foreach (var item in Model.Items) + { + + @item.Name + @item.CompanyName + @item.Phone + + @item.CreatedAt.ToString("yyyy-MM-dd") + + 상세 + 수정 + + + } + } diff --git a/src/TaxBaik.Web/Pages/Admin/ConsultingActivities/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/ConsultingActivities/Index.cshtml index d9b3adc..cd37edd 100644 --- a/src/TaxBaik.Web/Pages/Admin/ConsultingActivities/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/ConsultingActivities/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.ConsultingActivities.IndexModel @{ ViewData["Title"] = "상담 활동"; } -상담 활동 + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/Contracts/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/Contracts/Index.cshtml index 2ae459a..a972fb3 100644 --- a/src/TaxBaik.Web/Pages/Admin/Contracts/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Contracts/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.Contracts.IndexModel @{ ViewData["Title"] = "계약"; } -계약 관리 + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml b/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml index 97aa732..37d39cc 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml @@ -1,66 +1,2 @@ @page @model TaxBaik.Web.Pages.Admin.Customers.CreateModel -@{ - ViewData["Title"] = "고객 등록"; -} - - - - Customer Management - 고객 등록 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml.cs index 667dccb..db4760e 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Create.cshtml.cs @@ -1,27 +1,12 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -using TaxBaik.Application.DTOs; -using TaxBaik.Application.Services; using TaxBaik.Web.Services; namespace TaxBaik.Web.Pages.Admin.Customers; [Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] -public class CreateModel(ClientService clientService) : PageModel +public class CreateModel : PageModel { - [BindProperty] - public CreateClientDto Input { get; set; } = new(); - - public IActionResult OnGet() => Page(); - - public async Task OnPostAsync(CancellationToken ct) - { - if (!ModelState.IsValid) - return Page(); - - await clientService.CreateAsync(Input, ct); - return RedirectToPage("/Admin/Customers/Index"); - } + public IActionResult OnGet() => Redirect("/admin/clients/create"); } - diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml b/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml index 7c82a59..4e0aef4 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml @@ -1,44 +1,2 @@ @page "{id:int}" @model TaxBaik.Web.Pages.Admin.Customers.DetailModel -@{ - ViewData["Title"] = "고객 상세"; -} - - - @if (Model.Client is null) - { - 고객을 찾을 수 없습니다. - } - else - { - - - Customer Management - @Model.Client.Name - 고객 기본 정보와 변경 이력을 확인합니다. - - - 수정 - 목록 - - - - - - - 회사명@Model.Client.CompanyName - 전화@Model.Client.Phone - 이메일@Model.Client.Email - 상태@Model.Client.Status - 서비스 유형@Model.Client.ServiceType - 세금 유형@Model.Client.TaxType - 유입 경로@Model.Client.Source - 메모@Model.Client.Memo - 생성일@Model.Client.CreatedAt.ToString("yyyy-MM-dd HH:mm") - 수정일@Model.Client.UpdatedAt.ToString("yyyy-MM-dd HH:mm") - - - - } - - diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml.cs index 2dbfb1c..eaa40c1 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Detail.cshtml.cs @@ -1,17 +1,12 @@ using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -using TaxBaik.Application.Services; using TaxBaik.Web.Services; namespace TaxBaik.Web.Pages.Admin.Customers; [Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] -public class DetailModel(ClientService clientService) : PageModel +public class DetailModel : PageModel { - public TaxBaik.Domain.Entities.Client? Client { get; private set; } - - public async Task OnGetAsync(int id, CancellationToken ct) - { - Client = await clientService.GetByIdAsync(id, ct); - } + public IActionResult OnGet(int id) => Redirect($"/admin/clients/{id}"); } diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml b/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml index a42fb64..2a83728 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml @@ -1,65 +1,2 @@ @page "{id:int}" @model TaxBaik.Web.Pages.Admin.Customers.EditModel -@{ - ViewData["Title"] = "고객 수정"; -} - - - - Customer Management - 고객 수정 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml.cs index 428104e..b7572e8 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Edit.cshtml.cs @@ -1,56 +1,12 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -using TaxBaik.Application.DTOs; -using TaxBaik.Application.Services; using TaxBaik.Web.Services; namespace TaxBaik.Web.Pages.Admin.Customers; [Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] -public class EditModel(ClientService clientService) : PageModel +public class EditModel : PageModel { - [BindProperty(SupportsGet = true)] - public int Id { get; set; } - - [BindProperty] - public CreateClientDto Input { get; set; } = new(); - - public async Task OnGetAsync(CancellationToken ct) - { - var client = await clientService.GetByIdAsync(Id, ct); - if (client is null) - return NotFound(); - - Input = new CreateClientDto - { - Name = client.Name, - CompanyName = client.CompanyName, - Phone = client.Phone, - Email = client.Email, - ServiceType = client.ServiceType, - TaxType = client.TaxType, - Status = client.Status, - Source = client.Source, - Memo = client.Memo - }; - - return Page(); - } - - public async Task OnPostAsync(CancellationToken ct) - { - if (!ModelState.IsValid) - return Page(); - - await clientService.UpdateAsync(Id, Input, ct); - return RedirectToPage("/Admin/Customers/Detail", new { id = Id }); - } - - public async Task OnPostDeleteAsync(CancellationToken ct) - { - await clientService.DeleteAsync(Id, ct); - return RedirectToPage("/Admin/Customers/Index"); - } + public IActionResult OnGet(int id) => Redirect($"/admin/clients/{id}/edit"); } - diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml index 102a680..f8f1b02 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml @@ -1,93 +1,2 @@ @page @model TaxBaik.Web.Pages.Admin.Customers.IndexModel -@{ - ViewData["Title"] = "고객 목록"; -} - - - - - Customer Management - 고객 목록 - 검색, 상태 필터, 페이지네이션 기준의 고객 목록입니다. - - 고객 등록 - - - - - - - 검색 - - - - 상태 - - 전체 - active - inactive - - - - 페이지 크기 - - 10 - 20 - 50 - - - - 검색 - 초기화 - - - - - - - - - - - 고객명 - 회사명 - 전화 - 상태 - 등록일 - 작업 - - - - @if (Model.Items.Count == 0) - { - - - - - - } - else - { - foreach (var item in Model.Items) - { - - @item.Name - @item.CompanyName - @item.Phone - - @item.CreatedAt.ToString("yyyy-MM-dd") - - 상세 - 수정 - - - } - } - - - - - - - diff --git a/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml.cs b/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml.cs index 570d17e..bbcb9d8 100644 --- a/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Admin/Customers/Index.cshtml.cs @@ -1,35 +1,12 @@ using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -using TaxBaik.Application.Services; using TaxBaik.Web.Services; namespace TaxBaik.Web.Pages.Admin.Customers; [Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)] -public class IndexModel(ClientService clientService) : PageModel +public class IndexModel : PageModel { - public List Items { get; private set; } = []; - public int CurrentPage { get; private set; } = 1; - public int TotalPages { get; private set; } = 1; - public int TotalCount { get; private set; } - - public string? Search { get; set; } - public string? Status { get; set; } - public int PageSize { get; set; } = 10; - - public async Task OnGetAsync(string? search, string? status, int page = 1, int pageSize = 10, CancellationToken ct = default) - { - Search = search; - Status = status; - PageSize = pageSize; - CurrentPage = Math.Max(1, page); - - var (items, total) = await clientService.GetPagedAsync(CurrentPage, pageSize, status, search, ct); - Items = items.ToList(); - TotalCount = total; - TotalPages = Math.Max(1, (int)Math.Ceiling(total / (double)pageSize)); - } - - public string BuildPageUrl(int page) => - $"/admin/customers?search={Uri.EscapeDataString(Search ?? string.Empty)}&status={Uri.EscapeDataString(Status ?? string.Empty)}&page={page}&pageSize={PageSize}"; + public IActionResult OnGet() => Redirect("/admin/clients"); } diff --git a/src/TaxBaik.Web/Pages/Admin/RevenueTrackings/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/RevenueTrackings/Index.cshtml index 6b9f72b..80af9c8 100644 --- a/src/TaxBaik.Web/Pages/Admin/RevenueTrackings/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/RevenueTrackings/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.RevenueTrackings.IndexModel @{ ViewData["Title"] = "매출 추적"; } -매출 추적 + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/SeasonSimulator/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/SeasonSimulator/Index.cshtml index 8f7ded4..741d1bb 100644 --- a/src/TaxBaik.Web/Pages/Admin/SeasonSimulator/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/SeasonSimulator/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.SeasonSimulator.IndexModel @{ ViewData["Title"] = "시즌 시뮬레이터"; } -시즌 시뮬레이터 + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/Settings/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/Settings/Index.cshtml index e8b7d2e..b5772e8 100644 --- a/src/TaxBaik.Web/Pages/Admin/Settings/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/Settings/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.Settings.IndexModel @{ ViewData["Title"] = "설정"; } -설정 + + + + diff --git a/src/TaxBaik.Web/Pages/Admin/TaxFilings/Index.cshtml b/src/TaxBaik.Web/Pages/Admin/TaxFilings/Index.cshtml index d329be5..75cb7fd 100644 --- a/src/TaxBaik.Web/Pages/Admin/TaxFilings/Index.cshtml +++ b/src/TaxBaik.Web/Pages/Admin/TaxFilings/Index.cshtml @@ -1,4 +1,7 @@ @page @model TaxBaik.Web.Pages.Admin.TaxFilings.IndexModel @{ ViewData["Title"] = "세금 신고"; } -세금 신고 관리 + + + + diff --git a/src/TaxBaik.Web/Pages/Shared/_AdminSidebar.cshtml b/src/TaxBaik.Web/Pages/Shared/_AdminSidebar.cshtml index da7fce4..4eaa31f 100644 --- a/src/TaxBaik.Web/Pages/Shared/_AdminSidebar.cshtml +++ b/src/TaxBaik.Web/Pages/Shared/_AdminSidebar.cshtml @@ -4,8 +4,7 @@ 대시보드 - 고객 관리 - 기존 고객 + 고객 관리 블로그 문의 공지사항 diff --git a/src/TaxBaik.Web/Pages/Shared/_ComingSoon.cshtml b/src/TaxBaik.Web/Pages/Shared/_ComingSoon.cshtml new file mode 100644 index 0000000..8b9ccd8 --- /dev/null +++ b/src/TaxBaik.Web/Pages/Shared/_ComingSoon.cshtml @@ -0,0 +1,9 @@ +@model string + + + + 준비 중 + @Model + 이 페이지는 현재 구조를 맞춘 상태이며, 다음 단계에서 기능을 채우면 됩니다. + +
Customer Management
고객 기본 정보와 변경 이력을 확인합니다.
검색, 상태 필터, 페이지네이션 기준의 고객 목록입니다.
이 페이지는 현재 구조를 맞춘 상태이며, 다음 단계에서 기능을 채우면 됩니다.