[FE-07] 앱 시설상품·운영시간 api·훅 확장

작업 내용 (설계 의도)

변경 사항

시설 상세에서 시설상품(program) 목록과 운영시간/휴무 표시를 지원하도록 mobile/api/facility.tsmobile/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)