개선: 배포 검증과 관리자 UX 안정화
TaxBaik Browser E2E / browser-e2e (push) Failing after 1m3s
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m46s

This commit is contained in:
2026-06-27 20:57:09 +09:00
parent 64b08831e8
commit f29f2c3cff
51 changed files with 948 additions and 199 deletions
+16 -1
View File
@@ -1,11 +1,15 @@
namespace TaxBaik.Application.Services;
using System.Text.RegularExpressions;
using Microsoft.Extensions.Caching.Memory;
using TaxBaik.Domain.Entities;
using TaxBaik.Domain.Enums;
using TaxBaik.Domain.Interfaces;
public class InquiryService(IInquiryRepository repository, IInquiryNotificationService notificationService)
public class InquiryService(
IInquiryRepository repository,
IInquiryNotificationService notificationService,
IMemoryCache memoryCache)
{
private static readonly Regex PhoneRegex = new(@"^01[0-9]-\d{3,4}-\d{4}$");
@@ -36,6 +40,7 @@ public class InquiryService(IInquiryRepository repository, IInquiryNotificationS
var inquiryId = await repository.CreateAsync(inquiry, ct);
await notificationService.NotifyCreatedAsync(inquiryId, inquiry.Name, inquiry.Phone, inquiry.ServiceType, inquiry.Message, inquiry.IpAddress, inquiry.CreatedAt, ct);
memoryCache.Remove(AdminDashboardService.CacheKey);
return inquiryId;
}
@@ -46,6 +51,15 @@ public class InquiryService(IInquiryRepository repository, IInquiryNotificationS
int page, int pageSize, string? status = null, CancellationToken ct = default) =>
await repository.GetPagedAsync(NormalizePage(page), NormalizePageSize(pageSize), NormalizeOptionalStatus(status), ct);
public Task<int> CountAsync(CancellationToken ct = default)
=> repository.CountAsync(ct);
public Task<int> CountThisMonthAsync(CancellationToken ct = default)
=> repository.CountThisMonthAsync(ct);
public Task<int> CountByStatusAsync(string status, CancellationToken ct = default)
=> repository.CountByStatusAsync(status, ct);
public async Task UpdateStatusAsync(int id, string status, string? changedBy = null, CancellationToken ct = default)
{
if (!InquiryStatusMapper.TryParse(status, out var parsed))
@@ -60,6 +74,7 @@ public class InquiryService(IInquiryRepository repository, IInquiryNotificationS
await repository.UpdateStatusAsync(id, newStatus, ct);
await notificationService.NotifyStatusChangedAsync(id, inquiry.Name, inquiry.Phone, inquiry.ServiceType, previousStatus, newStatus, changedBy, ct);
memoryCache.Remove(AdminDashboardService.CacheKey);
}
private static int NormalizePage(int page) => Math.Max(1, page);