diff --git a/TaxBaik.Application/Services/ConsultingActivityService.cs b/TaxBaik.Application/Services/ConsultingActivityService.cs index 0a3d98d..c1420ed 100644 --- a/TaxBaik.Application/Services/ConsultingActivityService.cs +++ b/TaxBaik.Application/Services/ConsultingActivityService.cs @@ -33,6 +33,9 @@ public class ConsultingActivityService(IConsultingActivityRepository repository) public async Task> GetByClientIdAsync(int clientId, CancellationToken ct = default) => await repository.GetByClientIdAsync(clientId, ct); + public async Task> GetAllAsync(CancellationToken ct = default) => + await repository.GetAllAsync(ct); + public async Task> GetPendingFollowupsAsync(CancellationToken ct = default) => await repository.GetPendingFollowupsAsync(ct); diff --git a/TaxBaik.Domain/Interfaces/IConsultingActivityRepository.cs b/TaxBaik.Domain/Interfaces/IConsultingActivityRepository.cs index 2a71662..31dbc88 100644 --- a/TaxBaik.Domain/Interfaces/IConsultingActivityRepository.cs +++ b/TaxBaik.Domain/Interfaces/IConsultingActivityRepository.cs @@ -5,6 +5,7 @@ using TaxBaik.Domain.Entities; public interface IConsultingActivityRepository { Task CreateAsync(ConsultingActivity activity, CancellationToken cancellationToken = default); + Task> GetAllAsync(CancellationToken cancellationToken = default); Task> GetByClientIdAsync(int clientId, CancellationToken cancellationToken = default); Task> GetPendingFollowupsAsync(CancellationToken cancellationToken = default); Task> GetByConsultantAsync(int consultantId, DateTime fromDate, CancellationToken cancellationToken = default); diff --git a/TaxBaik.Infrastructure/Repositories/ConsultingActivityRepository.cs b/TaxBaik.Infrastructure/Repositories/ConsultingActivityRepository.cs index 0883e19..f5815ad 100644 --- a/TaxBaik.Infrastructure/Repositories/ConsultingActivityRepository.cs +++ b/TaxBaik.Infrastructure/Repositories/ConsultingActivityRepository.cs @@ -16,6 +16,14 @@ public class ConsultingActivityRepository(IDbConnectionFactory connectionFactory activity); } + public async Task> GetAllAsync(CancellationToken cancellationToken = default) + { + using var conn = Conn(); + return await conn.QueryAsync( + @"SELECT id, client_id, activity_type, activity_date, activity_time, assigned_consultant, description, outcome, next_followup_date, notes, created_at, updated_at + FROM consulting_activities ORDER BY activity_date DESC"); + } + public async Task> GetByClientIdAsync(int clientId, CancellationToken cancellationToken = default) { using var conn = Conn(); diff --git a/TaxBaik.Web/Controllers/ConsultingActivityController.cs b/TaxBaik.Web/Controllers/ConsultingActivityController.cs index 4cb57be..caa14ca 100644 --- a/TaxBaik.Web/Controllers/ConsultingActivityController.cs +++ b/TaxBaik.Web/Controllers/ConsultingActivityController.cs @@ -24,6 +24,20 @@ public class ConsultingActivityController(ConsultingActivityService service) : C } } + [HttpGet] + public async Task GetAll() + { + try + { + var activities = await service.GetAllAsync(); + return Ok(activities); + } + catch (Exception ex) + { + return StatusCode(500, new { error = "조회 실패", message = ex.Message }); + } + } + [HttpGet("{id:int}")] public async Task GetById(int id) {