How the Booking Diary Appointment Types Work
Source: workshop-public-booking-api-gateway/routes/publicEventRequestHandler.js
- Public portal matches appointment types by UUID
- NZAA endpoint matches by description text (different logic!)
- Estimated hours are summed across all selected types
- Types sorted reverse alphabetically by default
- If no types match, returns 400 error (but two different failure modes return same error)
Support scenarios
- "Wrong appointment duration" → hours summed from all selected types
- "NZAA booking shows different type than portal" → different matching logic (ID vs description)