You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Guillermo Pages 71367143c6
continuous-integration/drone/push Build is passing Details
feat(bookings): add TypeScript types and API client for Booking Admin v1.1
Implemented foundation for Phase 3 Booking Admin integration:

**TypeScript Types (src/types/bookings.ts):**
- BookingDetail with nested slot, attendees, provider info
- Request types: CancelBookingRequest, MoveBookingRequest, UpdateAttendeesRequest
- Response types for all operations (cancel, move, attendees)
- MoveDryRunResponse for slot picker validation
- ProviderInfo for FairPlay gating
- 18 booking error codes with user-friendly message mapping
- getBookingErrorMessage() helper with parameterized messages

**API Client (src/lib/api/bookings.ts):**
- getBooking() - GET /admin/bookings/{id} with ETag extraction
- cancelBooking() - PATCH /cancel with ETag + idempotency
- validateMoveBooking() - PATCH /move?dry_run=true for picker
- moveBooking() - PATCH /move with ETag + idempotency
- updateBookingAttendees() - PATCH /attendees with ETag + idempotency

**Features:**
- ETag optimistic concurrency (If-Match header)
- X-Idempotency-Key for retry safety (auto-generated UUID)
- Comprehensive error handling with RFC-7807 format
- Parameterized error messages (grace_minutes, limit_days)
- Network error fallbacks

**Production Config (per Backend Brooke):**
- Cancel grace: 15 min after slot start
- Move window: 14-day limit
- Product-type enforcement (singles ≠ doubles)
- Provider gating (FairPlay = read-only)

Related: Phase 3, Backend Brooke commit 514a3b6, v1.1 contract
1 month ago
..
admin-api.ts feat(phase-0): integrate admin clubs API with staging backend 1 month ago
assessment.ts feat(phase-0): integrate admin clubs API with staging backend 1 month ago
bookings.ts feat(bookings): add TypeScript types and API client for Booking Admin v1.1 1 month ago
courts.ts fix(admin): duration validation + sport variation display 1 month ago
materialisation.ts feat(admin): add materialisation trigger/status UI + court management infrastructure 1 month ago
slot-definitions.ts feat(slot-definitions): implement Phase 1 slot definition table UI 1 month ago