docs: update README, Obsidian docs, and gap backlog for booking edit modal

Reflect new PUT /api/admin/bookings/{id} services endpoint, EditBookingModal
component, and updated test count (306/308). Mark handleEdit() stub resolved
in gap backlog.
This commit is contained in:
2026-05-16 17:32:32 +01:00
parent 80621e0d77
commit a4ea994c69
3 changed files with 19 additions and 9 deletions
+4 -3
View File
@@ -1,5 +1,5 @@
# Crussell
#KM|> **Last Updated:** May 2026 — Test infrastructure overhaul, 286/288 tests passing
#KM|> **Last Updated:** May 2026 — Booking edit modal for /today page, 306/308 tests passing
Crussell is a **fullstack application** that powers a nailbar / salon booking service. The repository is split into a **Go** backend and a **SvelteKit** frontend, both of which are containerised with Docker. A lightweight **SabreDAV** instance is also exposed so that the salon can offer WebDAV access to clients.
## 📦 Project Structure
@@ -158,7 +158,7 @@ go test -tags test ./...
### Test Coverage
**286/288 tests passing** across all handler packages. Coverage includes guest user creation, guest bookings, slot reservation lifecycle, time blockers, anonymization, booking CRUD, admin management, authentication, scheduling, notifications, portfolio, user profiles, deposit system, edit requests, and discount campaigns.
**306/308 tests passing** across all handler packages. Coverage includes guest user creation, guest bookings, slot reservation lifecycle, time blockers, anonymization, booking CRUD, admin management, authentication, scheduling, notifications, portfolio, user profiles, deposit system, edit requests, discount campaigns, and **booking service editing**.
## 📂 Environment Variables
@@ -204,7 +204,7 @@ The `local-dev-2.sh` script automatically seeds:
| Booking CRUD | ✅ | ✅ | Full guest + authenticated booking flow with 5-step wizard |
| Guest Booking System | ✅ | ✅ | `POST /api/users/guest` creates disposable accounts; email uniqueness enforced for registered users only |
| Slot Reservation | ✅ | ✅ | `POST /api/bookings/reserve` (public) + admin endpoints; 4 TTL types (user:1h, anon:10min, walkin:5min, callin:1h); 50-cap for anon |
| Admin Endpoints | ✅ | ✅ | Services, users, today view, notifications, bookings |
| Admin Endpoints | ✅ | ✅ | Services, users, today view, notifications, bookings, **booking service editing** |
| Scheduling System | ✅ | ✅ | Default hours, exceptional hours, working/available hours, time blockers |
| Holiday Hours | ✅ | ✅ | Integrated in all 3 booking flows |
| Loyalty Backend | ✅ | ✅ | DB schema + displayed in account page |
@@ -270,6 +270,7 @@ Crussell supports **three distinct booking flows**:
| Self-Service | Customer | `BookingFlow.svelte` → reserve slot → guest account (if needed) → `POST /api/bookings` | ✅ |
| Walk-In | Admin | Admin panel → walk-in modal → reserve (5min TTL) → create booking | ✅ |
| Call/Message-In | Admin | Admin panel → booking modal → reserve (60min TTL) → create booking | ✅ |
| **Booking Edit** | Admin | `/today` → Next Appointment → Edit → `PUT /api/admin/bookings/{id}` | ✅ |
All three flows integrate with the **holiday/exceptional hours** system and **time blockers** to prevent bookings during closed or blocked periods.