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()); }