[FE-30] 웹 슬롯 open/close lib + BFF Route Handler
작업 내용 (설계 의도)
변경 사항
자동 생성 슬롯의 수동 마감/오픈 서버 호출 계층을 기존 web/lib/portal/slots.ts에 추가한다(이 티켓만 이 파일을 이 wave에서 수정).
web/lib/portal/slots.ts:closeSlot(facilityId, slotId)(PATCH .../slots/{slotId}/close),openSlot(facilityId, slotId)(PATCH .../slots/{slotId}/open). 기존 fetchSlots/createSlot 등 무변경.- BFF Route Handler:
web/app/api/portal/facilities/[id]/slots/[slotId]/close/route.ts(PATCH),.../open/route.ts(PATCH).
근거: 20260707-...-design-fe-web.md API 연동 표(W-SL). FR-10: 클로즈는 신규 예약만 차단, 기존 예약 유지.
의존
- FE-26 (SlotStatus 타입)
다이어그램
클래스 의존
flowchart LR Lib["lib/portal/slots.ts close/open"] --> Route["api/portal/facilities/[id]/slots/[slotId]/close|open"] Route --> BeClient["lib/server/be-client.ts"] Page["portal/slots page (FE-33)"] --> Lib
테스트 케이스
closeSlot('F1', 10)이PATCH .../slots/10/close를 호출한다openSlot('F1', 10)이PATCH .../slots/10/open를 호출한다- 409(상태 충돌) 응답을 표면화한다
- 기존 fetchSlots/createSlot 동작이 무변경이다(회귀 확인)