Skip to main content

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