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>
New read-only ledger tab combining every GRN, Sale and Return across
all products into one filterable table (type, product, category,
date range), showing all movements by default.
- Implemented InventorySalesTab for recording and viewing sales.
- Created InventorySuppliersTab for managing suppliers.
- Developed InventoryView to consolidate inventory-related tabs.
- Added API functions for handling products, suppliers, sales, and GRNs.
- Defined necessary TypeScript models for inventory entities.
- Updated navigation to include an Inventory section.