Implements the facility-classes-booking-dashboard plan (frontend):
- Facility create/edit replaces the single Booking Mode dropdown with
two independent checkboxes (Classes / Walk-in booking), showing both
capacity fields when both apply.
- New Classes tab (Memberships): create/edit recurring classes
(Daily/Weekly/Monthly/Custom), view occurrence history, mark an
occurrence not held, and a "Manage Plan" action that creates a
membership plan linked to that class (with an optional "also grant
gym access" toggle). Old Sessions tab/dialog removed from Bookings,
superseded by this.
- Booking Dashboard calendar now shows class occurrences as distinct
blocks (capacity/booked count, muted+dashed when not held and open
again), clicking any event opens a status/payment detail dialog, and
dragging a time range in Day/Week view jumps to Book Now with the
time pre-filled (snapped to 15-minute marks).
- Renamed adhoc-booking-tab.tsx to walkin-booking-tab.tsx (component
WalkInBookingTab, tab key "book-now") and every other "AdHoc"
reference to "WalkIn" for a clearer, simpler name.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Added FullCalendar component to display bookings in a calendar view.
- Implemented BookingDashboardTab to show summary statistics including bookings today, revenue, checked-in guests, and outstanding payments.
- Created BookingInvoicesTab to manage and display booking payment receipts separately from membership invoices.
- Enhanced AdhocBookingTab to allow selection of existing members for guest bookings.
- Updated BookingRosterTab to include payment methods and improved UI for guest identification.
- Introduced new API endpoints for fetching booking invoices and dashboard summaries.
- Updated models to support new features including payment methods and invoice structures.