f47717dfd8
* feat: multi-pet client group booking (closes groombook/groombook#10) (GRO-27) - Add appointment_groups table: links multiple appointments from one client visit - Add group_id FK on appointments (nullable, backward-compatible) - Add GET/POST/PATCH/DELETE /api/appointment-groups endpoints - POST creates group record + one appointment per pet atomically (with conflict checks) - DELETE soft-cancels all appointments in the group - Add GroupBooking.tsx page at /group-bookings with: - Dynamic pet-slot form (min 2 pets, each with their own groomer/service/end time) - Auto-calculates end time from service duration - Group card list showing all pets, groomers, and statuses side-by-side - Client filter and cancel-all action - Wire into nav and routing in App.tsx - Export AppointmentGroup type; add groupId field to Appointment type Co-Authored-By: Paperclip <noreply@paperclip.ing> * fix: remove eslint-disable for uninstalled react-hooks plugin; remove unused clientMap (GRO-27) Co-Authored-By: Paperclip <noreply@paperclip.ing> --------- Co-authored-by: Groom Book CTO <cto@groombook.app> Co-authored-by: Paperclip <noreply@paperclip.ing>