feat(booking): day-grouped class list with honest capacity states

Class sessions rendered as a flat stack of tall cards below the
stepped picker, and a full session still offered "Book now" while
silently producing a waitlisted booking. Sessions now group by day
with compact timetable rows; empty sessions show Full and switch the
action to Join waitlist, and low capacity shows a warning count.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas DvorakandDevin committed 2026-09-18 13:16:43 +02:00
1 parent 5884203e9d
commit 10df4e4c64
3 files changed
+63 -47

No files matched your search

+4
View File
@@ -116,6 +116,10 @@
- `PUT /v1/catalog/class-templates/{id}` end-to-end: `UpdateClassTemplate` in both repositories, catalog service method sharing `validateClassTemplateInput` with create, route, OpenAPI path, regenerated client
- classes tab template rows gained a pencil edit action that loads the template into the form; the submit button switches to save-changes with a cancel affordance
- remaining: live staging validation
- `[done/partial]` Milestone 18: Public class list polish
- class sessions on the public booking page are now grouped by day (localized weekday + date headers) with compact timetable-style rows instead of one tall card per session — consistent with the stepped appointment picker above
- capacity states read honestly: spots-left in success/warning tones, `Obsazeno`/`Full` when empty, and the action switches to `Na čekací listinu`/`Join waitlist` (previously a full session still said "Book now" while silently producing a waitlisted booking)
- remaining: live staging validation
## Overview
Bookra is a Czech-first booking SaaS for small local service businesses. It targets salons, massage therapists, small clinics, repair shops, and small studios/clubs that need a simple public booking flow, internal schedule management, reminders, and basic business reporting without becoming a full ERP.