Internal Booking API (tee‑time)
Create bookings in the internal tee‑time database and reserve slots atomically.
Adapter: TeeTimeBookingAdapter
Source: libs/tee-time-services/src/lib/tee-sheet-booking.service.ts
Request
{
"provider": "tee-time",
"tenantId": 1,
"slotId": 12345,
"contactName": "Jane Golfer",
"contactEmail": "jane@example.com",
"contactPhone": "+27111222333",
"externalRef": "WEB-ABC123"
}
Idempotency
- Hard: DB unique
(tenantId, externalRef); if present, the same booking is returned. - Soft: Redis NX
idemp:tt:booking:${tenantId}:${externalRef}with TTL (BOOKING_IDEMPOTENCY_TTL_SECONDS, default 60s).
Errors
- Missing fields → validation error at controller level
- Lock busy and no existing booking →
Idempotency lock busy; retry