From cb0a911bb3c1afba299421680d98809af1ffb0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=9C=A0=EC=84=9D?= Date: Thu, 19 Dec 2024 15:05:25 +0900 Subject: [PATCH] =?UTF-8?q?FU-191=20feat:=20=EC=9A=B4=EC=98=81=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EB=8B=A8=EC=9C=84=20=EB=B3=80=EA=B2=BD=EC=8B=9C=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EC=8A=A4=EC=BC=80=EC=A4=84=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../freebe/errors/errorcode/ScheduleErrorCode.java | 4 +++- .../com/foru/freebe/schedule/entity/BaseSchedule.java | 6 ++++++ .../freebe/schedule/service/BaseScheduleService.java | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/foru/freebe/errors/errorcode/ScheduleErrorCode.java b/src/main/java/com/foru/freebe/errors/errorcode/ScheduleErrorCode.java index 138a3ce..4cdfac2 100644 --- a/src/main/java/com/foru/freebe/errors/errorcode/ScheduleErrorCode.java +++ b/src/main/java/com/foru/freebe/errors/errorcode/ScheduleErrorCode.java @@ -7,7 +7,9 @@ @RequiredArgsConstructor public enum ScheduleErrorCode implements ErrorCode { - START_TIME_AFTER_END_TIME(400, "시작시간이 종료시간보다 더 늦습니다."); + START_TIME_AFTER_END_TIME(400, "시작시간과 종료시간이 올바르지 않습니다."), + CANNOT_CHANGE_SAME_SCHEDULE_UNIT(400, "같은 스케줄 단위로는 변경할 수 없습니다."); + private final int httpStatus; private final String message; diff --git a/src/main/java/com/foru/freebe/schedule/entity/BaseSchedule.java b/src/main/java/com/foru/freebe/schedule/entity/BaseSchedule.java index 43819eb..5dec707 100644 --- a/src/main/java/com/foru/freebe/schedule/entity/BaseSchedule.java +++ b/src/main/java/com/foru/freebe/schedule/entity/BaseSchedule.java @@ -61,6 +61,12 @@ public void updateScheduleTime(LocalTime startTime, LocalTime endTime, Operation this.operationStatus = operationStatus; } + public void initializeSchedule() { + this.startTime = LocalTime.of(9,0,0); + this.endTime = LocalTime.of(18,0,0); + this.operationStatus = OperationStatus.ACTIVE; + } + @Builder public BaseSchedule(Member photographer, DayOfWeek dayOfWeek, LocalTime startTime, LocalTime endTime, OperationStatus operationStatus) { diff --git a/src/main/java/com/foru/freebe/schedule/service/BaseScheduleService.java b/src/main/java/com/foru/freebe/schedule/service/BaseScheduleService.java index 54a5956..a6ecec0 100644 --- a/src/main/java/com/foru/freebe/schedule/service/BaseScheduleService.java +++ b/src/main/java/com/foru/freebe/schedule/service/BaseScheduleService.java @@ -91,6 +91,16 @@ public ScheduleUnitDto getScheduleUnit(Long photographerId) { @Transactional public void updateScheduleUnit(Long photographerId, ScheduleUnitDto scheduleUnitDto) { Member photographer = getMember(photographerId); + + if (photographer.getScheduleUnit() == scheduleUnitDto.getScheduleUnit()) { + throw new RestApiException(ScheduleErrorCode.CANNOT_CHANGE_SAME_SCHEDULE_UNIT); + } + + List baseScheduleList = baseScheduleRepository.findByPhotographerId(photographer.getId()); + for (BaseSchedule baseSchedule : baseScheduleList) { + baseSchedule.initializeSchedule(); + } + photographer.updateScheduleUnit(scheduleUnitDto.getScheduleUnit()); }