ExBooking. Hold
(ExBooking v0.1.0)
View Source
Temporary reservation data.
Holds are caller-owned records. The kernel can emit a reserve intent, treat holds as busy intervals on later searches, and compute a release transition; it never stores, expires, or refreshes them itself.
Example
iex> slot = ExBooking.Interval.new!(~U[2026-07-13 09:00:00Z], ~U[2026-07-13 09:30:00Z])
...>
...> hold = %ExBooking.Hold{
...> id: "hold_1",
...> slot: slot,
...> resource_ids: ["resource_1"],
...> meeting_type_id: "intro",
...> expires_at: ~U[2026-07-13 08:45:00Z]
...> }
...>
...> hold.id
"hold_1"
Summary
Types
@type t() :: %ExBooking.Hold{ expires_at: DateTime.t(), id: String.t(), meeting_type_id: String.t(), resource_ids: [String.t()], slot: ExBooking.Interval.t() }
A hold on a slot.