feat: harden auth ops and deployment baseline

This commit is contained in:
2026-06-27 10:53:53 +09:00
parent a6ca30eec8
commit 28060b71be
41 changed files with 714 additions and 208 deletions
@@ -1,8 +1,9 @@
@page "/admin/inquiries/{InquiryId:int}"
@using TaxBaik.Domain.Interfaces
@using TaxBaik.Application.Services
@attribute [Authorize]
@inject IInquiryRepository InquiryRepository
@inject InquiryService InquiryService
@inject NavigationManager Navigation
@inject ISnackbar Snackbar
<PageTitle>문의 상세</PageTitle>
@@ -36,7 +37,7 @@
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.subtitle1">상태</MudText>
<MudSelect @bind-Value="inquiry.Status" Label="상태 변경">
<MudSelect T="string" Value="inquiry.Status" ValueChanged="@((string status) => OnStatusChanged(status))" Label="상태 변경">
<MudSelectItem Value="@("new")">신규</MudSelectItem>
<MudSelectItem Value="@("contacted")">연락함</MudSelectItem>
<MudSelectItem Value="@("completed")">완료</MudSelectItem>
@@ -54,11 +55,27 @@ else
[Parameter]
public int InquiryId { get; set; }
private Domain.Entities.Inquiry inquiry;
private Domain.Entities.Inquiry? inquiry;
protected override async Task OnInitializedAsync()
{
var (inquiries, _) = await InquiryRepository.GetPagedAsync(1, 1000);
inquiry = inquiries.FirstOrDefault(x => x.Id == InquiryId);
inquiry = await InquiryService.GetByIdAsync(InquiryId);
}
private async Task OnStatusChanged(string status)
{
if (inquiry == null)
return;
try
{
await InquiryService.UpdateStatusAsync(inquiry.Id, status);
inquiry.Status = status;
Snackbar.Add("상태가 변경되었습니다.", Severity.Success);
}
catch (ValidationException ex)
{
Snackbar.Add(ex.Message, Severity.Error);
}
}
}