From ad313a8c26aecb390e013cc7e2482bb2052fb32e Mon Sep 17 00:00:00 2001 From: hodoon Date: Sun, 11 Jan 2026 23:40:53 +0900 Subject: [PATCH 1/4] =?UTF-8?q?refactor:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=9E=90=EC=8B=A0=EC=9D=98=20=EC=8A=A4=EC=BC=80=EC=A4=84=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20API=20=EC=8A=A4=ED=8E=99=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserScheduleController.java | 32 ++++++++++-- .../UserScheduleControllerSpec.java | 22 ++++++-- .../DailyWorkScheduleInquiryRequestDto.java | 25 ++++++++++ .../MonthlyWorkScheduleInquiryRequestDto.java | 22 ++++++++ .../dto/MyScheduleMonthlyResponseDto.java | 19 +++++++ .../dto/WorkScheduleInquiryRequestDto.java | 3 ++ .../WorkspaceShiftQueryRepositoryImpl.java | 15 ++++++ .../workspace/usecase/GetMyDailySchedule.java | 38 ++++++++++++++ .../usecase/GetMyMonthlySchedule.java | 50 +++++++++++++++++++ .../inbound/GetMyDailyScheduleUseCase.java | 11 ++++ .../inbound/GetMyMonthlyScheduleUseCase.java | 9 ++++ .../WorkspaceShiftQueryRepository.java | 1 + 12 files changed, 241 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java create mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java create mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java create mode 100644 src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java create mode 100644 src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java create mode 100644 src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java create mode 100644 src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java index e98c9561..064c1337 100644 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java @@ -1,11 +1,11 @@ package com.dreamteam.alter.adapter.inbound.general.schedule.controller; import com.dreamteam.alter.adapter.inbound.common.dto.CommonApiResponse; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkScheduleInquiryRequestDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkspaceScheduleResponseDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.*; import com.dreamteam.alter.application.aop.AppActionContext; import com.dreamteam.alter.domain.user.context.AppActor; +import com.dreamteam.alter.domain.workspace.port.inbound.GetMyDailyScheduleUseCase; +import com.dreamteam.alter.domain.workspace.port.inbound.GetMyMonthlyScheduleUseCase; import com.dreamteam.alter.domain.workspace.port.inbound.GetMyScheduleUseCase; import com.dreamteam.alter.domain.workspace.port.inbound.GetWorkspaceScheduleUseCase; import jakarta.annotation.Resource; @@ -27,6 +27,12 @@ public class UserScheduleController implements UserScheduleControllerSpec { @Resource(name = "getMyWorkSchedule") private final GetMyScheduleUseCase getMySchedule; + @Resource(name = "getMyDailySchedule") + private final GetMyDailyScheduleUseCase getMyDailySchedule; + + @Resource(name = "getMyMonthlySchedule") + private final GetMyMonthlyScheduleUseCase getMyMonthlySchedule; + @Resource(name = "getWorkspaceWorkSchedule") private final GetWorkspaceScheduleUseCase getWorkspaceSchedule; @@ -40,6 +46,26 @@ public ResponseEntity>> getMySched return ResponseEntity.ok(CommonApiResponse.of(getMySchedule.execute(actor, request))); } + @Override + @GetMapping("/self/monthly") + public ResponseEntity> getMyMonthlySchedule( + MonthlyWorkScheduleInquiryRequestDto request + ) { + AppActor actor = AppActionContext.getInstance().getActor(); + + return ResponseEntity.ok(CommonApiResponse.of(getMyMonthlySchedule.execute(actor, request))); + } + + @Override + @GetMapping("/self/daily") + public ResponseEntity>> getMyDailySchedule( + DailyWorkScheduleInquiryRequestDto request + ) { + AppActor actor = AppActionContext.getInstance().getActor(); + + return ResponseEntity.ok(CommonApiResponse.of(getMyDailySchedule.execute(actor, request))); + } + @Override @GetMapping("/workspaces/{workspaceId}") public ResponseEntity>> getWorkspaceSchedule( diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java index acca29d9..1cb2fe98 100644 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java @@ -2,9 +2,7 @@ import com.dreamteam.alter.adapter.inbound.common.dto.CommonApiResponse; import com.dreamteam.alter.adapter.inbound.common.dto.ErrorResponse; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkScheduleInquiryRequestDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkspaceScheduleResponseDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Content; @@ -29,6 +27,24 @@ ResponseEntity>> getMySchedule( WorkScheduleInquiryRequestDto request ); + @Operation(summary = "나의 월별 근무 스케쥴 조회", description = "특정 월의 총 근무시간과 스케줄 목록을 조회합니다. year, month 값을 모두 포함해야합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "월별 스케줄 조회 성공") + }) + ResponseEntity> getMyMonthlySchedule( + MonthlyWorkScheduleInquiryRequestDto request + ); + + @Operation(summary = "나의 일별 근무 스케줄 조회", description = "특정 일의 상세 스케줄 목록을 조회합니다. year, month, day 값을 모두 포함해야합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "일별 스케줄 조회 성공") + }) + ResponseEntity>> getMyDailySchedule( + DailyWorkScheduleInquiryRequestDto request + ); + + + @Operation(summary = "업장별 근무 스케줄 조회", description = "year, month 값을 모두 포함해야합니다.") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "스케줄 조회 성공"), diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java new file mode 100644 index 00000000..066e9135 --- /dev/null +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java @@ -0,0 +1,25 @@ +package com.dreamteam.alter.adapter.inbound.general.schedule.dto; + +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springdoc.core.annotations.ParameterObject; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@ParameterObject +@Schema(description = "일별 스케줄 조회 요청") +public class DailyWorkScheduleInquiryRequestDto { + + @Parameter(description = "조회할 연도", required = true, example = "2024") + private Integer year; + + @Parameter(description = "조회할 월", required = true, example = "5") + private Integer month; + + @Parameter(description = "조회할 일", required = true, example = "20") + private Integer day; +} diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java new file mode 100644 index 00000000..482beb0c --- /dev/null +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java @@ -0,0 +1,22 @@ +package com.dreamteam.alter.adapter.inbound.general.schedule.dto; + +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springdoc.core.annotations.ParameterObject; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@ParameterObject +@Schema(description = "월별 스케줄 조회 요청") +public class MonthlyWorkScheduleInquiryRequestDto { + + @Parameter(description = "조회할 연도", required = true, example = "2024") + private Integer year; + + @Parameter(description = "조회할 월", required = true, example = "5") + private Integer month; +} diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java new file mode 100644 index 00000000..601ea21f --- /dev/null +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java @@ -0,0 +1,19 @@ +package com.dreamteam.alter.adapter.inbound.general.schedule.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Getter; + +import java.util.List; + +@Getter +@Builder +@Schema(description = "내 월별 스케쥴 응답") +public class MyScheduleMonthlyResponseDto { + + @Schema(description = "월 총 근무시간", example = "160.5") + private double totalWorkHoursInMonth; + + @Schema(description = "월별 스케쥴 목록") + private List schedules; +} diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/WorkScheduleInquiryRequestDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/WorkScheduleInquiryRequestDto.java index 91903d19..5c33239a 100644 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/WorkScheduleInquiryRequestDto.java +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/WorkScheduleInquiryRequestDto.java @@ -17,4 +17,7 @@ public class WorkScheduleInquiryRequestDto { @Parameter(description = "조회할 월") private Integer month; + + @Parameter(description = "조회할 일 (일별 조회 시 사용)") + private Integer day; } diff --git a/src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceShiftQueryRepositoryImpl.java b/src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceShiftQueryRepositoryImpl.java index 906c1832..4680d0b8 100644 --- a/src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceShiftQueryRepositoryImpl.java +++ b/src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceShiftQueryRepositoryImpl.java @@ -48,6 +48,21 @@ public List findByUserAndWeeklyRange(User user, LocalDate startD .fetch(); } + @Override + public List findByUserAndDate(User user, int year, int month, int day) { + LocalDateTime startOfDay = LocalDateTime.of(year, month, day, 0, 0, 0); + LocalDateTime endOfDay = startOfDay.plusDays(1); + return queryFactory + .selectFrom(workspaceShift) + .where( + workspaceShift.assignedWorkspaceWorker.user.eq(user), + workspaceShift.startDateTime.goe(startOfDay), + workspaceShift.startDateTime.lt(endOfDay) + ) + .orderBy(workspaceShift.startDateTime.asc()) + .fetch(); + } + @Override public List findByWorkspaceAndDateRange(Workspace workspace, int year, int month) { return queryFactory diff --git a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java new file mode 100644 index 00000000..50b0d260 --- /dev/null +++ b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java @@ -0,0 +1,38 @@ +package com.dreamteam.alter.application.workspace.usecase; + +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.DailyWorkScheduleInquiryRequestDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; +import com.dreamteam.alter.domain.user.context.AppActor; +import com.dreamteam.alter.domain.workspace.entity.WorkspaceShift; +import com.dreamteam.alter.domain.workspace.port.inbound.GetMyDailyScheduleUseCase; +import com.dreamteam.alter.domain.workspace.port.outbound.WorkspaceShiftQueryRepository; +import lombok.RequiredArgsConstructor; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +@Service("getMyDailySchedule") +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class GetMyDailySchedule implements GetMyDailyScheduleUseCase { + + private final WorkspaceShiftQueryRepository workspaceShiftQueryRepository; + + @Override + public List execute(AppActor actor, @MonotonicNonNull DailyWorkScheduleInquiryRequestDto request) { + + List dailyShifts = workspaceShiftQueryRepository.findByUserAndDate( + actor.getUser(), + request.getYear(), + request.getMonth(), + request.getDay() + ); + + return dailyShifts.stream() + .map(MyScheduleResponseDto::of) + .collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java new file mode 100644 index 00000000..6732252a --- /dev/null +++ b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java @@ -0,0 +1,50 @@ +package com.dreamteam.alter.application.workspace.usecase; + +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MonthlyWorkScheduleInquiryRequestDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleMonthlyResponseDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; +import com.dreamteam.alter.domain.user.context.AppActor; +import com.dreamteam.alter.domain.workspace.entity.WorkspaceShift; +import com.dreamteam.alter.domain.workspace.port.inbound.GetMyMonthlyScheduleUseCase; +import com.dreamteam.alter.domain.workspace.port.outbound.WorkspaceShiftQueryRepository; +import lombok.RequiredArgsConstructor; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.Duration; +import java.util.List; + +@Service("getMyMonthlySchedule") +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class GetMyMonthlySchedule implements GetMyMonthlyScheduleUseCase { + + private final WorkspaceShiftQueryRepository workspaceShiftQueryRepository; + + @Override + public MyScheduleMonthlyResponseDto execute(AppActor actor, @MonotonicNonNull MonthlyWorkScheduleInquiryRequestDto request) { + + + List shifts = workspaceShiftQueryRepository.findByUserAndDateRange( + actor.getUser(), + request.getYear(), + request.getMonth() + ); + + double totalWorkHours = shifts.stream() + .mapToDouble(shift -> { + Duration duration = Duration.between(shift.getStartDateTime(), shift.getEndDateTime()); + return duration.toMinutes() / 60.0; + }) + .sum(); + + List scheduleDtos = shifts.stream() + .map(MyScheduleResponseDto::of) + .toList(); + return MyScheduleMonthlyResponseDto.builder() + .totalWorkHoursInMonth(totalWorkHours) + .schedules(scheduleDtos) + .build(); + } +} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java new file mode 100644 index 00000000..7dfcaaee --- /dev/null +++ b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java @@ -0,0 +1,11 @@ +package com.dreamteam.alter.domain.workspace.port.inbound; + +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.DailyWorkScheduleInquiryRequestDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; +import com.dreamteam.alter.domain.user.context.AppActor; + +import java.util.List; + +public interface GetMyDailyScheduleUseCase { + List execute(AppActor actor, DailyWorkScheduleInquiryRequestDto request); +} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java new file mode 100644 index 00000000..d584da1c --- /dev/null +++ b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java @@ -0,0 +1,9 @@ +package com.dreamteam.alter.domain.workspace.port.inbound; + +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MonthlyWorkScheduleInquiryRequestDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleMonthlyResponseDto; +import com.dreamteam.alter.domain.user.context.AppActor; + +public interface GetMyMonthlyScheduleUseCase { + MyScheduleMonthlyResponseDto execute(AppActor actor, MonthlyWorkScheduleInquiryRequestDto request); +} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/outbound/WorkspaceShiftQueryRepository.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/outbound/WorkspaceShiftQueryRepository.java index 94ac6bd3..18180183 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/port/outbound/WorkspaceShiftQueryRepository.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/port/outbound/WorkspaceShiftQueryRepository.java @@ -14,6 +14,7 @@ public interface WorkspaceShiftQueryRepository { List findByUserAndDateRange(User user, int year, int month); List findByUserAndWeeklyRange(User user, LocalDate startDate, LocalDate endDate); + List findByUserAndDate(User user, int year, int month, int day); List findByWorkspaceAndDateRange(Workspace workspace, int year, int month); List findByManagerAndDateRange(ManagerUser managerUser, Long workspaceId, int year, int month); Optional findById(Long id); From bfde1911e271c07c00909be2028e79a77281ff8e Mon Sep 17 00:00:00 2001 From: hodoon Date: Mon, 19 Jan 2026 14:43:35 +0900 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20=EC=9D=91=EB=8B=B5=20DTO=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=EB=AA=85=20=EB=8B=A8=EC=88=9C?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserScheduleController.java | 35 +------- .../UserScheduleControllerSpec.java | 25 ++---- .../dto/GetMyScheduleResponseDto.java | 27 +++++++ .../workspace/usecase/GetMySchedule.java | 81 +++++++++++++++++++ .../port/inbound/GetMyScheduleUseCase.java | 6 +- 5 files changed, 118 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/GetMyScheduleResponseDto.java create mode 100644 src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMySchedule.java diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java index 064c1337..43135341 100644 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleController.java @@ -4,10 +4,7 @@ import com.dreamteam.alter.adapter.inbound.general.schedule.dto.*; import com.dreamteam.alter.application.aop.AppActionContext; import com.dreamteam.alter.domain.user.context.AppActor; -import com.dreamteam.alter.domain.workspace.port.inbound.GetMyDailyScheduleUseCase; -import com.dreamteam.alter.domain.workspace.port.inbound.GetMyMonthlyScheduleUseCase; -import com.dreamteam.alter.domain.workspace.port.inbound.GetMyScheduleUseCase; -import com.dreamteam.alter.domain.workspace.port.inbound.GetWorkspaceScheduleUseCase; +import com.dreamteam.alter.domain.workspace.port.inbound.*; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -24,21 +21,15 @@ @RequestMapping("/app/schedules") public class UserScheduleController implements UserScheduleControllerSpec { - @Resource(name = "getMyWorkSchedule") + @Resource(name = "getMySchedule") private final GetMyScheduleUseCase getMySchedule; - @Resource(name = "getMyDailySchedule") - private final GetMyDailyScheduleUseCase getMyDailySchedule; - - @Resource(name = "getMyMonthlySchedule") - private final GetMyMonthlyScheduleUseCase getMyMonthlySchedule; - @Resource(name = "getWorkspaceWorkSchedule") private final GetWorkspaceScheduleUseCase getWorkspaceSchedule; @Override @GetMapping("/self") - public ResponseEntity>> getMySchedule( + public ResponseEntity> getMySchedule( WorkScheduleInquiryRequestDto request ) { AppActor actor = AppActionContext.getInstance().getActor(); @@ -46,26 +37,6 @@ public ResponseEntity>> getMySched return ResponseEntity.ok(CommonApiResponse.of(getMySchedule.execute(actor, request))); } - @Override - @GetMapping("/self/monthly") - public ResponseEntity> getMyMonthlySchedule( - MonthlyWorkScheduleInquiryRequestDto request - ) { - AppActor actor = AppActionContext.getInstance().getActor(); - - return ResponseEntity.ok(CommonApiResponse.of(getMyMonthlySchedule.execute(actor, request))); - } - - @Override - @GetMapping("/self/daily") - public ResponseEntity>> getMyDailySchedule( - DailyWorkScheduleInquiryRequestDto request - ) { - AppActor actor = AppActionContext.getInstance().getActor(); - - return ResponseEntity.ok(CommonApiResponse.of(getMyDailySchedule.execute(actor, request))); - } - @Override @GetMapping("/workspaces/{workspaceId}") public ResponseEntity>> getWorkspaceSchedule( diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java index 1cb2fe98..8f425267 100644 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/controller/UserScheduleControllerSpec.java @@ -19,32 +19,17 @@ @Tag(name = "APP - 근무 스케줄 관리 API") public interface UserScheduleControllerSpec { - @Operation(summary = "나의 근무 스케줄 조회", description = "특정 월의 스케줄을 조회하려면 year, month 값을 모두 포함해야합니다.") + @Operation(summary = "나의 근무 스케줄 조회", description = "파라미터 조합에 따라 조회가 달라집니다.
"+ + "- 인자 없음: 이번 주 스케줄 조회
" + + "- year, month: 해당 월 스케줄 조회
" + + "- year, month, day: 해당 일 스케줄 조회") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "스케줄 조회 성공") }) - ResponseEntity>> getMySchedule( + ResponseEntity> getMySchedule( WorkScheduleInquiryRequestDto request ); - @Operation(summary = "나의 월별 근무 스케쥴 조회", description = "특정 월의 총 근무시간과 스케줄 목록을 조회합니다. year, month 값을 모두 포함해야합니다.") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "월별 스케줄 조회 성공") - }) - ResponseEntity> getMyMonthlySchedule( - MonthlyWorkScheduleInquiryRequestDto request - ); - - @Operation(summary = "나의 일별 근무 스케줄 조회", description = "특정 일의 상세 스케줄 목록을 조회합니다. year, month, day 값을 모두 포함해야합니다.") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "일별 스케줄 조회 성공") - }) - ResponseEntity>> getMyDailySchedule( - DailyWorkScheduleInquiryRequestDto request - ); - - - @Operation(summary = "업장별 근무 스케줄 조회", description = "year, month 값을 모두 포함해야합니다.") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "스케줄 조회 성공"), diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/GetMyScheduleResponseDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/GetMyScheduleResponseDto.java new file mode 100644 index 00000000..58270684 --- /dev/null +++ b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/GetMyScheduleResponseDto.java @@ -0,0 +1,27 @@ +package com.dreamteam.alter.adapter.inbound.general.schedule.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.util.List; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder(access = AccessLevel.PRIVATE) +@Schema(description = "스케줄 조회 통합 응답") +public class GetMyScheduleResponseDto { + + @Schema(description = "총 근무 시간", example = "40.5") + private double totalWorkHours; + + @Schema(description = "스케줄 목록") + private List schedules; + + public static GetMyScheduleResponseDto of(double totalWorkHours, List schedules) { + return GetMyScheduleResponseDto.builder() + .totalWorkHours(totalWorkHours) + .schedules(schedules) + .build(); + } +} diff --git a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMySchedule.java b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMySchedule.java new file mode 100644 index 00000000..f0e1b2f7 --- /dev/null +++ b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMySchedule.java @@ -0,0 +1,81 @@ +package com.dreamteam.alter.application.workspace.usecase; + +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.GetMyScheduleResponseDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkScheduleInquiryRequestDto; +import com.dreamteam.alter.common.exception.CustomException; +import com.dreamteam.alter.common.exception.ErrorCode; +import com.dreamteam.alter.domain.user.context.AppActor; +import com.dreamteam.alter.domain.workspace.entity.WorkspaceShift; +import com.dreamteam.alter.domain.workspace.port.inbound.GetMyScheduleUseCase; +import com.dreamteam.alter.domain.workspace.port.outbound.WorkspaceShiftQueryRepository; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.DayOfWeek; +import java.time.Duration; +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.List; + +@Service("getMySchedule") +@Transactional(readOnly = true) +@RequiredArgsConstructor +public class GetMySchedule implements GetMyScheduleUseCase { + + private final WorkspaceShiftQueryRepository workspaceShiftQueryRepository; + + @Override + public GetMyScheduleResponseDto execute(AppActor actor, WorkScheduleInquiryRequestDto request) { + + List shifts; + + if (ObjectUtils.isNotEmpty(request.getYear()) && ObjectUtils.isNotEmpty(request.getMonth()) && ObjectUtils.isNotEmpty(request.getDay())) { + // 1. 년/월/일 포함 -> 일별 조회 + shifts = workspaceShiftQueryRepository.findByUserAndDate( + actor.getUser(), + request.getYear(), + request.getMonth(), + request.getDay() + ); + + } else if (ObjectUtils.isNotEmpty(request.getYear()) && ObjectUtils.isNotEmpty(request.getMonth())) { + // 2. 년/월 포함 -> 월별 조회 + shifts = workspaceShiftQueryRepository.findByUserAndDateRange( + actor.getUser(), + request.getYear(), + request.getMonth() + ); + + } else if (ObjectUtils.isEmpty(request.getYear()) && ObjectUtils.isEmpty(request.getMonth()) && ObjectUtils.isEmpty(request.getDay())) { + // 3. 인자 없음 -> 이번 주 스케줄 조회 (월~일) + LocalDate now = LocalDate.now(); + LocalDate startOfWeek = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); + LocalDate endOfWeek = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); + + shifts = workspaceShiftQueryRepository.findByUserAndWeeklyRange( + actor.getUser(), + startOfWeek, + endOfWeek + ); + + } else { + throw new CustomException(ErrorCode.ILLEGAL_ARGUMENT, "연단위 요청은 불가능합니다."); + } + + double totalWorkHours = shifts.stream() + .mapToDouble(shift -> { + Duration duration = Duration.between(shift.getStartDateTime(), shift.getEndDateTime()); + return duration.toMinutes() / 60.0; + }) + .sum(); + + List scheduleDtos = shifts.stream() + .map(MyScheduleResponseDto::of) + .toList(); + + return GetMyScheduleResponseDto.of(totalWorkHours, scheduleDtos); + } +} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java index 5ed1b809..e92f0a8f 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java @@ -1,11 +1,9 @@ package com.dreamteam.alter.domain.workspace.port.inbound; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; +import com.dreamteam.alter.adapter.inbound.general.schedule.dto.GetMyScheduleResponseDto; import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkScheduleInquiryRequestDto; import com.dreamteam.alter.domain.user.context.AppActor; -import java.util.List; - public interface GetMyScheduleUseCase { - List execute(AppActor actor, WorkScheduleInquiryRequestDto request); + GetMyScheduleResponseDto execute(AppActor actor, WorkScheduleInquiryRequestDto request); } From c864716ca2ae41b4349ba1fa4832428f7d605151 Mon Sep 17 00:00:00 2001 From: hodoon Date: Wed, 21 Jan 2026 23:18:01 +0900 Subject: [PATCH 3/4] =?UTF-8?q?refactor:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=8A=A4=EC=BC=80=EC=A4=84=20=EC=A1=B0=ED=9A=8C=20API=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0=20(=EC=9B=94/=EC=A3=BC/=EC=9D=BC=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workspace/usecase/GetMyWorkSchedule.java | 43 ------------------- .../port/inbound/GetMyScheduleUseCase.java | 1 + 2 files changed, 1 insertion(+), 43 deletions(-) delete mode 100644 src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyWorkSchedule.java diff --git a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyWorkSchedule.java b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyWorkSchedule.java deleted file mode 100644 index a4573f0c..00000000 --- a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyWorkSchedule.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.dreamteam.alter.application.workspace.usecase; - -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkScheduleInquiryRequestDto; -import com.dreamteam.alter.domain.user.context.AppActor; -import com.dreamteam.alter.domain.workspace.entity.WorkspaceShift; -import com.dreamteam.alter.domain.workspace.port.inbound.GetMyScheduleUseCase; -import com.dreamteam.alter.domain.workspace.port.outbound.WorkspaceShiftQueryRepository; -import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.ObjectUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.time.LocalDate; -import java.util.List; - -@Service("getMyWorkSchedule") -@RequiredArgsConstructor -@Transactional(readOnly = true) -public class GetMyWorkSchedule implements GetMyScheduleUseCase { - - private final WorkspaceShiftQueryRepository workspaceShiftQueryRepository; - - @Override - public List execute(AppActor actor, WorkScheduleInquiryRequestDto request) { - List shifts; - - if (ObjectUtils.isEmpty(request.getYear()) || ObjectUtils.isEmpty(request.getMonth())) { - // 날짜 정보가 null인 경우: 일주일 범위 조회 - LocalDate startOfWeek = LocalDate.now(); - LocalDate endOfWeek = startOfWeek.plusDays(7); - - shifts = workspaceShiftQueryRepository.findByUserAndWeeklyRange(actor.getUser(), startOfWeek, endOfWeek); - } else { - // 날짜 정보가 제공된 경우: 해당 월의 일정 조회 - shifts = workspaceShiftQueryRepository.findByUserAndDateRange(actor.getUser(), request.getYear(), request.getMonth()); - } - - return shifts.stream() - .map(MyScheduleResponseDto::of) - .toList(); - } -} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java index e92f0a8f..d99a7856 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyScheduleUseCase.java @@ -4,6 +4,7 @@ import com.dreamteam.alter.adapter.inbound.general.schedule.dto.WorkScheduleInquiryRequestDto; import com.dreamteam.alter.domain.user.context.AppActor; + public interface GetMyScheduleUseCase { GetMyScheduleResponseDto execute(AppActor actor, WorkScheduleInquiryRequestDto request); } From e57b1a7571338814aa296492b4f01285b7f8fdd2 Mon Sep 17 00:00:00 2001 From: hodoon Date: Thu, 22 Jan 2026 10:13:14 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DailyWorkScheduleInquiryRequestDto.java | 25 ---------- .../MonthlyWorkScheduleInquiryRequestDto.java | 22 -------- .../dto/MyScheduleMonthlyResponseDto.java | 19 ------- .../workspace/usecase/GetMyDailySchedule.java | 38 -------------- .../usecase/GetMyMonthlySchedule.java | 50 ------------------- .../inbound/GetMyDailyScheduleUseCase.java | 11 ---- .../inbound/GetMyMonthlyScheduleUseCase.java | 9 ---- 7 files changed, 174 deletions(-) delete mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java delete mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java delete mode 100644 src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java delete mode 100644 src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java delete mode 100644 src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java delete mode 100644 src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java delete mode 100644 src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java deleted file mode 100644 index 066e9135..00000000 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/DailyWorkScheduleInquiryRequestDto.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dreamteam.alter.adapter.inbound.general.schedule.dto; - -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springdoc.core.annotations.ParameterObject; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@ParameterObject -@Schema(description = "일별 스케줄 조회 요청") -public class DailyWorkScheduleInquiryRequestDto { - - @Parameter(description = "조회할 연도", required = true, example = "2024") - private Integer year; - - @Parameter(description = "조회할 월", required = true, example = "5") - private Integer month; - - @Parameter(description = "조회할 일", required = true, example = "20") - private Integer day; -} diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java deleted file mode 100644 index 482beb0c..00000000 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MonthlyWorkScheduleInquiryRequestDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dreamteam.alter.adapter.inbound.general.schedule.dto; - -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springdoc.core.annotations.ParameterObject; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@ParameterObject -@Schema(description = "월별 스케줄 조회 요청") -public class MonthlyWorkScheduleInquiryRequestDto { - - @Parameter(description = "조회할 연도", required = true, example = "2024") - private Integer year; - - @Parameter(description = "조회할 월", required = true, example = "5") - private Integer month; -} diff --git a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java b/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java deleted file mode 100644 index 601ea21f..00000000 --- a/src/main/java/com/dreamteam/alter/adapter/inbound/general/schedule/dto/MyScheduleMonthlyResponseDto.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.dreamteam.alter.adapter.inbound.general.schedule.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Builder; -import lombok.Getter; - -import java.util.List; - -@Getter -@Builder -@Schema(description = "내 월별 스케쥴 응답") -public class MyScheduleMonthlyResponseDto { - - @Schema(description = "월 총 근무시간", example = "160.5") - private double totalWorkHoursInMonth; - - @Schema(description = "월별 스케쥴 목록") - private List schedules; -} diff --git a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java deleted file mode 100644 index 50b0d260..00000000 --- a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyDailySchedule.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.dreamteam.alter.application.workspace.usecase; - -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.DailyWorkScheduleInquiryRequestDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; -import com.dreamteam.alter.domain.user.context.AppActor; -import com.dreamteam.alter.domain.workspace.entity.WorkspaceShift; -import com.dreamteam.alter.domain.workspace.port.inbound.GetMyDailyScheduleUseCase; -import com.dreamteam.alter.domain.workspace.port.outbound.WorkspaceShiftQueryRepository; -import lombok.RequiredArgsConstructor; -import org.checkerframework.checker.nullness.qual.MonotonicNonNull; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.stream.Collectors; - -@Service("getMyDailySchedule") -@RequiredArgsConstructor -@Transactional(readOnly = true) -public class GetMyDailySchedule implements GetMyDailyScheduleUseCase { - - private final WorkspaceShiftQueryRepository workspaceShiftQueryRepository; - - @Override - public List execute(AppActor actor, @MonotonicNonNull DailyWorkScheduleInquiryRequestDto request) { - - List dailyShifts = workspaceShiftQueryRepository.findByUserAndDate( - actor.getUser(), - request.getYear(), - request.getMonth(), - request.getDay() - ); - - return dailyShifts.stream() - .map(MyScheduleResponseDto::of) - .collect(Collectors.toList()); - } -} diff --git a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java b/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java deleted file mode 100644 index 6732252a..00000000 --- a/src/main/java/com/dreamteam/alter/application/workspace/usecase/GetMyMonthlySchedule.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.dreamteam.alter.application.workspace.usecase; - -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MonthlyWorkScheduleInquiryRequestDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleMonthlyResponseDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; -import com.dreamteam.alter.domain.user.context.AppActor; -import com.dreamteam.alter.domain.workspace.entity.WorkspaceShift; -import com.dreamteam.alter.domain.workspace.port.inbound.GetMyMonthlyScheduleUseCase; -import com.dreamteam.alter.domain.workspace.port.outbound.WorkspaceShiftQueryRepository; -import lombok.RequiredArgsConstructor; -import org.checkerframework.checker.nullness.qual.MonotonicNonNull; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.time.Duration; -import java.util.List; - -@Service("getMyMonthlySchedule") -@RequiredArgsConstructor -@Transactional(readOnly = true) -public class GetMyMonthlySchedule implements GetMyMonthlyScheduleUseCase { - - private final WorkspaceShiftQueryRepository workspaceShiftQueryRepository; - - @Override - public MyScheduleMonthlyResponseDto execute(AppActor actor, @MonotonicNonNull MonthlyWorkScheduleInquiryRequestDto request) { - - - List shifts = workspaceShiftQueryRepository.findByUserAndDateRange( - actor.getUser(), - request.getYear(), - request.getMonth() - ); - - double totalWorkHours = shifts.stream() - .mapToDouble(shift -> { - Duration duration = Duration.between(shift.getStartDateTime(), shift.getEndDateTime()); - return duration.toMinutes() / 60.0; - }) - .sum(); - - List scheduleDtos = shifts.stream() - .map(MyScheduleResponseDto::of) - .toList(); - return MyScheduleMonthlyResponseDto.builder() - .totalWorkHoursInMonth(totalWorkHours) - .schedules(scheduleDtos) - .build(); - } -} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java deleted file mode 100644 index 7dfcaaee..00000000 --- a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyDailyScheduleUseCase.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.dreamteam.alter.domain.workspace.port.inbound; - -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.DailyWorkScheduleInquiryRequestDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleResponseDto; -import com.dreamteam.alter.domain.user.context.AppActor; - -import java.util.List; - -public interface GetMyDailyScheduleUseCase { - List execute(AppActor actor, DailyWorkScheduleInquiryRequestDto request); -} diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java b/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java deleted file mode 100644 index d584da1c..00000000 --- a/src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/GetMyMonthlyScheduleUseCase.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.dreamteam.alter.domain.workspace.port.inbound; - -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MonthlyWorkScheduleInquiryRequestDto; -import com.dreamteam.alter.adapter.inbound.general.schedule.dto.MyScheduleMonthlyResponseDto; -import com.dreamteam.alter.domain.user.context.AppActor; - -public interface GetMyMonthlyScheduleUseCase { - MyScheduleMonthlyResponseDto execute(AppActor actor, MonthlyWorkScheduleInquiryRequestDto request); -}