예약 삭제 시, 사용 중인 예약, 과거 예약 분리해서 에러 메세지 보내도록 하는 기능 추가 (multi setting 기능이랑 연관은 없는데 걍 태운 작업)
823
Map에 Service Zone 개념 추가
현재 시간 convert 로직이 너무 스태틱하여 어색함
좀 더 확장 가능성을 염두에 둔 방식으로 수정
요지: Map이 ServiceZone (KOREA)를 가진다
추후 다른 지역(국가)에서 맵을 생성한다거나, 타 국가의 예약 시간을 현지 시간으로 변경해서 보고 싶다거나 하는 경우가 있을 수 있음
논의하고 싶은 내용
변경 양이 많기 때문에 아래 주요 포인트 위주로 봐주시면 감사하겠습니다
주요 포인트
Settings 일급 컬렉션 생성 (Embedded)
Multi Setting 기능 으로 인해 변경된 validation 및 에러 메세지 (ReservationService > validateSpaceSetting 로직 추가된 부분)
이 부분은 제 나름대로 메세지 상세하게 제공하려고 고민해서 작성해봤는데 더 좋은 아이디어 있으면 제안 부탁드립니다
...
if (relevantSettings.isEmpty()) {
throw new NoSettingAvailableException(space);
}
if (relevantSettings.haveMultipleSettings()) {
throw new MultipleSettingsException(relevantSettings);
}
if (relevantSettings.cannotAcceptDueToAvailableTime(timeSlot)) {
throw new InvalidStartEndTimeException(relevantSettings, timeSlot);
}
...
- Setting들의 영속성을 Space가 전적으로(?) 관리 `CascadeType.PERSIST`
- 로직을 짜다보니 Setting이 전적으로 Space의 로직에 의존하므로 아싸리 Space에서 Setting의 생애주기를 관리하는게 더 합리적이라고 생각
Close #814
Close #823
지난 번과 마찬가지로, @yujo11 를 위해 dev에 소스 선반영 하도록 하겠습니다
구현 기능
832
823
논의하고 싶은 내용
주요 포인트
if (relevantSettings.isEmpty()) { throw new NoSettingAvailableException(space); } if (relevantSettings.haveMultipleSettings()) { throw new MultipleSettingsException(relevantSettings); }
if (relevantSettings.cannotAcceptDueToAvailableTime(timeSlot)) { throw new InvalidStartEndTimeException(relevantSettings, timeSlot); }
...