feat: multi-pet client group booking (closes #10) #31
Reference in New Issue
Block a user
Delete Branch "feat/multi-pet-group-booking"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implements multi-pet client group booking from issue #10. When a client brings multiple pets in the same visit (possibly with different groomers working simultaneously), staff can now create a group booking that links all pets in one atomic operation.
Schema (
0005_appointment_groups.sql):appointment_groupstable withclient_idand optionalnotesgroup_idFK column onappointments(nullable — fully backward-compatible)API (
/api/appointment-groups):POST /— creates group + one appointment per pet atomically inside a transaction; checks groomer conflicts for each pet independentlyGET /— list groups with their appointments (filterable byclientId, date range)GET /:id— single group with enriched appointment rows (pet/service/staff names)PATCH /:id— update group notesDELETE /:id— soft-cancel all appointments in the groupFrontend (
/group-bookings):Test plan
/group-bookings— empty state shownappointment_groupsrow created;appointmentsrows have matchinggroup_idcancelledgroup_idis NULL)tsc --noEmitpasses in api, web, and db packagesCloses #10
🤖 Generated with Claude Code