[FE-23] 앱 시설상품 회차 예약 (A-F2, booking/new 재사용 확장)
작업 내용 (설계 의도)
변경 사항
기존 mobile/app/booking/new.tsx(MO-04)를 확장해 program 회차 예약을 지원한다.
?programId=파라미터가 오면 슬롯 목록을 programId로 필터(useSlots확장 or 클라 필터 — §design Open Questions). CLOSED 슬롯 제외.- 결제 amount는 program.price 사용(기존 10,000 고정 대신 — program 예약 시).
POST /bookings+/payment?orderType=BOOKING기존 흐름 재사용(신규 결제 접점 없음, FR-12). - 하드코딩 색 →
useTheme()토큰 리트로핏(기존 화면). 기존 대기질 경고 게이트·일반 시설 예약 경로 무변경(programId 없으면 기존 동작).
근거: design-fe-app A-F2, FR-12/16. 롤백: programId 분기 제거(기존 booking 무영향).
의존
- FE-07 (usePrograms/슬롯 programId), FE-04 (OrderType)
다이어그램
클래스 의존
flowchart LR Screen["booking/new?programId"] --> Slots["useSlots (programId 필터)"] Screen --> Create["useCreateBooking (기존)"] Screen --> Pay["payment/new?orderType=BOOKING"]
테스트 케이스
- programId 파라미터가 있으면 해당 program 회차만 슬롯으로 노출된다
- program 예약 결제 amount가 program.price로 설정된다
- programId 없으면 기존 시설 예약 동작이 유지된다(회귀)
- CLOSED/정원초과 슬롯 예약 시 409 안내가 노출된다
- 슬롯 0건 시 “예약 가능한 회차가 없어요”
- 하드코딩 색 0건, 라이트/다크 렌더