diff --git a/src/TaxBaik.Web/Endpoints/ConsultingActivity/AllEndpoints.cs b/src/TaxBaik.Web/Endpoints/ConsultingActivity/AllEndpoints.cs index 088c7b5..bde397f 100644 --- a/src/TaxBaik.Web/Endpoints/ConsultingActivity/AllEndpoints.cs +++ b/src/TaxBaik.Web/Endpoints/ConsultingActivity/AllEndpoints.cs @@ -3,19 +3,20 @@ using TaxBaik.Application.Services; namespace TaxBaik.Web.Endpoints.ConsultingActivity; -public class Req { public int ClientId { get; set; } public string? Topic { get; set; } public string? Notes { get; set; } public DateTime ActivityDate { get; set; } } +public class CreatReq { public int ClientId { get; set; } public string? ActivityType { get; set; } public DateTime ActivityDate { get; set; } public string? Notes { get; set; } } +public class UpdateReq { public string? Outcome { get; set; } public DateTime? NextFollowupDate { get; set; } } public class Resp { public List Data { get; set; } = []; } public class IdResp { public int Id { get; set; } } -public class Qry { public int DaysAhead { get; set; } = 30; } +public class DateQry { public DateTime FromDate { get; set; } } -public class CreateEp : Endpoint +public class CreateEp : Endpoint { readonly ConsultingActivityService _s; public CreateEp(ConsultingActivityService s) => _s = s; public override void Configure() { Post("/api/consultingactivity"); Policies("Bearer"); } - public override async Task HandleAsync(Req r, CancellationToken ct) + public override async Task HandleAsync(CreatReq r, CancellationToken ct) { - var id = await _s.CreateAsync(r.ClientId, r.Topic, r.Notes, r.ActivityDate); + var id = await _s.CreateAsync(r.ClientId, r.ActivityType, r.ActivityDate, r.Notes); await SendAsync(new IdResp { Id = id }, 201, cancellation: ct); } } @@ -32,19 +33,6 @@ public class GetAllEp : Endpoint } } -public class GetByIdEp : Endpoint -{ - readonly ConsultingActivityService _s; - public GetByIdEp(ConsultingActivityService s) => _s = s; - public override void Configure() { Get("/api/consultingactivity/{id}"); Policies("Bearer"); } - public override async Task HandleAsync(EmptyRequest _, CancellationToken ct) - { - var item = await _s.GetByIdAsync(Route("id")); - if (item == null) ThrowError("활동을 찾을 수 없습니다.", statusCode: 404); - await SendAsync(item, 200, cancellation: ct); - } -} - public class GetByClientEp : Endpoint { readonly ConsultingActivityService _s; @@ -57,18 +45,6 @@ public class GetByClientEp : Endpoint } } -public class GetRecentEp : Endpoint -{ - readonly ConsultingActivityService _s; - public GetRecentEp(ConsultingActivityService s) => _s = s; - public override void Configure() { Get("/api/consultingactivity/recent"); Policies("Bearer"); } - public override async Task HandleAsync(Qry q, CancellationToken ct) - { - var items = await _s.GetRecentActivitiesAsync(q.DaysAhead); - await SendAsync(new Resp { Data = items.Cast().ToList() }, 200, cancellation: ct); - } -} - public class GetPendingFollowupsEp : Endpoint { readonly ConsultingActivityService _s; @@ -80,3 +56,27 @@ public class GetPendingFollowupsEp : Endpoint await SendAsync(new Resp { Data = items.Cast().ToList() }, 200, cancellation: ct); } } + +public class GetConsultantActivityEp : Endpoint +{ + readonly ConsultingActivityService _s; + public GetConsultantActivityEp(ConsultingActivityService s) => _s = s; + public override void Configure() { Get("/api/consultingactivity/consultant/{consultantId}"); Policies("Bearer"); } + public override async Task HandleAsync(DateQry q, CancellationToken ct) + { + var items = await _s.GetConsultantActivityAsync(Route("consultantId"), q.FromDate); + await SendAsync(new Resp { Data = items.Cast().ToList() }, 200, cancellation: ct); + } +} + +public class UpdateEp : Endpoint +{ + readonly ConsultingActivityService _s; + public UpdateEp(ConsultingActivityService s) => _s = s; + public override void Configure() { Put("/api/consultingactivity/{id}"); Policies("Bearer"); } + public override async Task HandleAsync(UpdateReq r, CancellationToken ct) + { + await _s.UpdateAsync(Route("id"), r.Outcome, r.NextFollowupDate); + await SendAsync(new { message = "업데이트 완료" }, 200, cancellation: ct); + } +}