fix(admin): pagination, patch tests, and per-page limits
Backend:
- Fix GetAllAdminBookingsHandler and SearchAdminBookingsHandler to
return totalPages in response
- Auto-record patch tests when booking status progresses to "completed"
- Add GET/POST /api/admin/users/{id}/patch-tests endpoints
Frontend:
- BookingsCard: proper pagination with 4 per page, prev/next buttons
- UsersCard, BookingCreateModal, WalkInCreateModal: per_page=4 for user
search
- Add PatchTestModal for manual patch test entry in UserModal
- Hide patch test section when user has no eligible services
Database:
- Add UNIQUE constraint on user_service_patch_tests(user_id, service_id)
This commit is contained in:
@@ -102,7 +102,7 @@
|
||||
#### Admin Dashboard (`/admin`)
|
||||
- [x] Auth guard with role check
|
||||
- [x] ImageUpload component
|
||||
- [x] UsersCard + UserModal
|
||||
- [x] UsersCard + UserModal + PatchTestModal
|
||||
- [x] BookingsCard + BookingModal
|
||||
- [x] HolidayHours (exceptional hours management)
|
||||
- [x] WeeklySchedule (default hours management)
|
||||
@@ -120,6 +120,7 @@
|
||||
- [x] Customer details form (guest or authenticated)
|
||||
- [x] Auth store with token refresh logic
|
||||
- [x] **Admin booking flows** - Call-in and walk-in use `/api/services/eligible-for/{user_id}` for user-specific eligibility
|
||||
- [x] **Manual patch test entry** - Admin can record patch test completion via User Details → Patch Test modal (for 2-minute walk-in patch tests)
|
||||
- [ ] **Customer booking submit** - `submitBooking()` only logs, needs `POST /api/bookings`
|
||||
- [ ] Payment integration (Square placeholder)
|
||||
|
||||
@@ -253,6 +254,8 @@ flowchart TD
|
||||
| POST | `/api/admin/bookings/{id}/cancel` | Cancel booking |
|
||||
| GET | `/api/admin/users` | List users |
|
||||
| GET | `/api/admin/users/{id}` | Get user details |
|
||||
| GET | `/api/admin/users/{id}/patch-tests/eligible` | Get services requiring patch test that user hasn't completed |
|
||||
| POST | `/api/admin/users/{id}/patch-tests` | Record patch test completion for user |
|
||||
| GET | `/api/admin/today/current-next` | Current and next appointment |
|
||||
| GET | `/api/admin/today/appointments` | Today's appointments |
|
||||
| GET | `/api/admin/today/pending-approvals` | Pending approval queue |
|
||||
@@ -443,10 +446,11 @@ src/lib/components/
|
||||
│ ├── BookingModal.svelte
|
||||
│ ├── BookingsCard.svelte
|
||||
│ ├── CallInBooking.svelte
|
||||
│ ├── HolidayHours.svelte
|
||||
│ ├── ImageUpload.svelte
|
||||
│ ├── ServicesManagement.svelte
|
||||
│ ├── UserModal.svelte
|
||||
│ ├── HolidayHours.svelte
|
||||
│ ├── ImageUpload.svelte
|
||||
│ ├── PatchTestModal.svelte
|
||||
│ ├── ServicesManagement.svelte
|
||||
│ ├── UserModal.svelte
|
||||
│ ├── UsersCard.svelte
|
||||
│ ├── WalkInBooking.svelte
|
||||
│ └── WalkInCreateModal.svelte
|
||||
|
||||
Reference in New Issue
Block a user