- 사용자는 방탈출 예약 생성 시, 토스 결제를 할 수 있다.
- 사용자는 예약이 존재하는 날짜, 테마, 시간에 대해 예약 대기를 생성할 수 있다.
- 사용자가 같은 날짜, 테마, 시간에 대해 이미 대기를 생성했을 경우 중복 생성 불가
- 지나간 시간에 대한 예약 대기 생성 불가
- 자신이 예약한 날짜, 테마, 시간에 대한 대기 생성 불가
- 예약이 존재하지 않는 날짜, 테마, 시간에 대해 대기 생성 불가
- 사용자는 예약 대기를 자신이 생성한 대기를 삭제할 수 있다.
- 관리자는 예약 대기를 거절할 수 있다. (거절된 대기는 나의 예약 목록에서 확인 가능)
- 관리자가 예약 삭제 시 자동으로 우선순위가 가장 높은 대기를 승인한다.
- 관리자는 예약 시간을 추가 및 삭제할 수 있다.
- 관리자와 사용자는 모든 예약 시간을 조회할 수 있다.
- 예약 시간은
00:00
부터23:59
까지 추가할 수 있다. - 중복되는 예약 시간은 추가할 수 없다.
- 하나 이상의 예약에서 사용되는 예약 시간은 삭제할 수 없다.
- 관리자와 사용자는 예약을 추가할 수 있다.
- 관리자는 예약을 삭제할 수 있다.
- 관리자는 모든 예약을 조회할 수 있다.
- 예약 생성 시 예약자명, 날짜, 시간, 테마를 지정해야만 한다.
- 날짜, 시간, 테마가 중복되는 경우 예약을 추가할 수 없다.
- 지나간 날짜와 시간에 대한 예약 생성은 불가능하다.
- 관리자는 날짜, 테마, 예약자 조건으로 필터링된 예약 목록을 조회할 수 있다.
- 나의 예약을 조회할 수 있다.
- 예약 조회 시 예약 대기 목록도 함께 포함하여 조회
- 관리자는 테마를 추가 및 삭제할 수 있다.
- 관리자와 사용자는 모든 테마를 조회할 수 있다.
- 하나 이상의 예약에서 사용되는 테마는 삭제할 수 없다.
- 중복된 이름의 테마는 추가할 수 없다.
- 인기 테마 : 최근 일주일 기준으로 하여 예약이 많은 순으로 정렬했을 떄, 상위 10개 테마
- 메인 페이지에 접속하면, 인기 테마를 보여준다.
- 인기 테마가 10개 이내면, 인기 테마가 아닌 테마도 화면에 표시된다.
- 사용자 도메인을 추가한다.
- name: 사용자 이름
- email: 이메일
- password: 비밀번호
- email(id), password로 로그인 기능을 구현한다.
- 로그인 후 Cookie를 이용하여 사용자의 정보를 조회하는 API를 구현한다.