woowacourse-teams / 2022-ternoko

면담은 찐하게, 예약은 손쉽게! 올인원 면담 예약 서비스 터놓고 💖
https://ternoko.site
44 stars 6 forks source link

[BE] fix: 같은 시간이 두개 생기는 오류를 해결한다. #478

Open dongho108 opened 2 years ago

dongho108 commented 2 years ago

As-is

  1. 코치가 면담가능시간을 생성한다.
  2. 크루가 그 시간에 예약한다.
  3. 코치가 다시 그 시간을 연다.
  4. 코치가 그 시간예 예약된 면담을 시간을 남겨놓으며 삭제 한다.

이러면 같은 시간이 두개가 생긴다.

To-be

HyeonbinSa commented 2 years ago

현재 발생하는 문제

image

Issue 내용의 AS-IS에 작성된 것과 같은 상황에 문제가 발생함.

  1. 코치가 시간을 열어둔 상태에서 크루가 면담을 예약해 해당 가능한 시간이 "USED" 상태가 된다.
  2. 코치가 가능한 시간을 수정할 때 USED가 있는 시간에 추가한다면 "OPEN" 상태인 가능한 시간이 생성된다.
    • 동일한 코치와 동일한 시간을 가진 AvailableDateTime이 "USED", "OPEN" 두 개인 상황이 발생한다.
  3. 이때 코치가 해당 시간의 면담을 시간을 열어둔 채 취소한다면 해당하는 AvailableDateTime은 "DELETED"로 변경되고 "OPEN"인 상태의 AvailableDateTime이 다시 생성된다.
    • 동일한 코치와 동일한 시간을 가진 AvailableDateTime이 "DELETED", "OPEN", "OPEN" 세 개인 상황이 발생한다.
  4. 면담 생성, 수정 페이지에 들어가면 해당 시간이 위 이미지와 같이 2개가 보여지는 문제가 발생한다.

해결방안 1

AvailableDateTime의 Status를 세분화한다.

Case 1. 코치가 시간을 남겨둔 채 면담을 취소 (CANCELED)

면담 재예약

해결방안 2

코치가 가능한 시간을 수정할 때 면담이 예약된 시간(USED)을 선택하지 못하도록 프론트엔드 측에서 막아준다.