JUNFORGE,
설계 문서매장 예약

BDR · 동작 규칙

어떤 조건에서 동작하는가

매장 예약 · 공개 설계 예시

Markdown 원본
이 문서의 목차

EDR의 데이터 구조를 바탕으로 예약 화면의 조건과 동작을 정리한 BDR 설계 예시입니다. 규칙마다 정상 흐름, 예외, 확인 기준을 연결합니다.

S01 · 사용자 흐름

예약 시트 열기 → 날짜 선택 → 인원 선택 → 시간 선택 → 완료 콜백 → 시트 닫힘.

이 문서는 ReservationSheet의 현재 화면 동작을 설명합니다. 결제, 예약 확정, 중복 예약 방지, 취소 정책은 구현 근거가 없는 별도의 업무 범위입니다.

규칙목적데이터확인 기준
B001새 예약 선택을 초기화E03V01
B002방문 날짜 선택E03.dateV02
B003인원 선택 범위 유지E03.party_sizeV03
B004선택 가능한 시간만 허용E02V04
B005필수 선택 후 완료 처리E03V05

B001 · 열 때마다 초기화

시트를 다시 열면 이전 입력을 이어 쓰지 않고 날짜부터 새로 선택합니다.

대상조건상태체크시스템 동작후처리설명
예약 시트open이 true로 변경열림날짜·시간을 비우고 인원을 2로 설정날짜 단계 표시이전 선택값을 새 예약에 재사용하지 않음
대상조건에러 메시지
이전 선택값시트 재진입메시지 없음, 초기값으로 재설정

데이터: E03 예약 요청. 확인: V01 초기화.

B002 · 날짜 선택

달력에 최소 선택 날짜를 전달합니다. 별도 값이 없으면 현재 날짜를 사용합니다. 날짜를 선택하면 잠시 선택 결과를 보여준 뒤 인원 단계로 이동합니다.

대상조건상태체크시스템 동작후처리설명
방문 날짜달력에서 날짜 선택선택 가능한 날짜selectedDate 갱신200ms 후 인원 단계날짜 선택 결과를 인지할 시간 제공
최소 날짜minDate 미전달기본값 사용현재 날짜를 달력에 전달달력의 제한 동작 적용서버의 영업일 검증과 별개
대상조건에러 메시지
방문 날짜달력의 최소 날짜보다 이전별도 메시지 없음, 달력의 선택 제한에 위임

데이터: E03.date. 확인: V02 날짜 범위.

B003 · 인원 범위 유지

인원은 1명부터 12명까지 선택합니다. 경계에서는 해당 방향의 버튼을 비활성화하고, 값 변경도 같은 범위로 제한합니다.

대상조건상태체크시스템 동작후처리설명
인원 증가증가 버튼 누르기인원 < 12min(12, 현재 인원 + 1)인원 표시 갱신최댓값 12
인원 감소감소 버튼 누르기인원 > 1max(1, 현재 인원 - 1)인원 표시 갱신최솟값 1
대상조건에러 메시지
인원 증가현재 12명메시지 없음, 증가 버튼 비활성화
인원 감소현재 1명메시지 없음, 감소 버튼 비활성화

데이터: E03.party_size. 확인: V03 경계값.

B004 · 예약 시간 선택

전달된 시간 목록에서 available이 true인 항목을 선택할 수 있습니다. 목록이 생략되면 기본 예시 목록을 사용합니다.

대상조건상태체크시스템 동작후처리설명
예약 시간슬롯 누르기available = trueselectedTime 갱신선택 표시 갱신한 번에 한 시간 선택
선택 불가 시간슬롯 표시available = falsedisabled와 aria-disabled 적용선택 차단재고 수량 계산을 의미하지 않음
대상조건에러 메시지
선택 불가 슬롯선택 시도메시지 없음, 선택되지 않음

데이터: E02 예약 가능 시간, E03.time. 확인: V04 시간 선택.

B005 · 선택 완료

날짜와 시간이 모두 선택되면 완료할 수 있습니다. 인원은 기본값과 증감 버튼으로 범위 안에서 관리합니다.

대상조건상태체크시스템 동작후처리설명
완료 버튼버튼 누르기날짜·시간 존재onConfirm에 date, partySize, time 전달onOpenChange(false)시트 선택 완료
대상조건에러 메시지
완료 버튼날짜 또는 시간 미선택메시지 없음, 버튼 비활성화 및 핸들러 조기 반환

현재 부모 화면은 콜백의 페이로드를 사용하지 않고 onReserve()를 호출합니다. 화면의 ‘예약 완료’ 문구는 데모의 UI 동작이며, 서버의 예약 확정 증거는 아닙니다.

데이터: E03 예약 요청. 확인: V05 콜백과 저장의 경계.

S02 · 후속 설계가 필요한 범위

실제 예약 서비스로 연결하려면 날짜·인원별 수용량, 동시 예약, 서버 유효성 검사, 요청 중 상태, 실패 복구, 취소 정책을 추가로 정의해야 합니다. 이 예시에는 해당 정책을 실제 구현처럼 넣지 않았습니다.

다음 문서: 검증 · 확인 기준.

이어서 읽기검증 · 확인 기준