[FE-07] 앱 시설상품·운영시간 api·훅 확장
작업 내용 (설계 의도)
변경 사항
시설 상세에서 시설상품(program) 목록과 운영시간/휴무 표시를 지원하도록 mobile/api/facility.ts와 mobile/lib/useFacility.ts를 확장한다.
api/facility.ts:listPrograms(facilityId)(GET /facilities/{facilityId}/programs) 신규. 운영시간·휴무는 시설 상세 응답(getFacility)에 임베드로 포함되는지 확인 후, 포함이면 별도 함수 불요(§design Open Questions).lib/useFacility.ts:usePrograms(facilityId)신규(TanStack Query). 운영시간·휴무는useFacilityDetail응답에서 파생 노출(별도 훅 불요 시).
program 회차 예약은 기존 useSlots(FE-23에서 programId 필터) + useCreateBooking 재사용.
근거: 20260707-모집-시설상품-소모임예약연동-tdd.md REST 계약(facility), design-fe-app A-F1/A-F2.
의존
- FE-01 (Program·Slot 타입)
다이어그램
클래스 의존
flowchart LR Hook["lib/useFacility.ts usePrograms"] --> Api["api/facility.ts listPrograms"] Api --> Client["be-client"] Screen["facility/[id] (FE-22)"] --> Hook
테스트 케이스
usePrograms('F1')이GET /facilities/F1/programs를 호출하고 목록을 반환한다- program 0건 응답 시 빈 배열을 반환한다(에러 아님)
- 조회 실패 시 isError를 노출한다
- 운영시간·휴무가 시설 상세 응답에 있으면 파생값으로 노출된다(미등록 시 undefined)