[FE-33] 웹 슬롯 open/close 화면 확장 (W-SL)

작업 내용 (설계 의도)

변경 사항

기존 web/app/portal/slots/page.tsx를 확장한다.

  • 각 슬롯 행에 status 배지(OPEN=success/CLOSED=warning·회색) + 단일 토글 액션([마감]/[오픈]). closeSlot/openSlot(FE-30) 호출, 확인 다이얼로그(“신규 예약만 차단, 기존 예약은 유지됩니다”). 성공 시 상태 배지 즉시 갱신.
  • 기존 슬롯 CRUD(생성/수정/삭제) 무변경. 색은 Tailwind 시맨틱 클래스(라이트/다크).

근거: design-fe-web W-SL, FR-10(클로즈=신규 차단, 기존 예약 유지).

의존

  • FE-30 (slots close/open lib)

다이어그램

클래스 의존

flowchart LR
    Page["portal/slots/page"] --> Lib["lib/portal/slots.ts close/open (FE-30)"]
    Page --> Dialog["ConfirmDialog"]

테스트 케이스

  • OPEN 슬롯에 [마감] 액션이 노출되고 클릭 시 확인 다이얼로그가 뜬다
  • 확인 시 closeSlot 호출 후 배지가 CLOSED로 갱신된다
  • CLOSED 슬롯에 [오픈] 액션이 노출되고 openSlot이 호출된다
  • 409(상태 충돌) 시 toast가 노출된다
  • 기존 슬롯 CRUD가 무변경이다(회귀)
  • 라이트/다크 시맨틱 클래스로 렌더된다