ExBooking.Event (ExBooking v0.1.0)

View Source

Canonical booking events emitted by decisions.

Events describe what happened in booking-domain language: confirmed, reserved, rescheduled, canceled, expired, or marked no-show. The consumer stamps ids and occurrence times, stores the events, and publishes them to analytics, billing, calendar, or notification systems as needed.

Example

iex> event = %ExBooking.Event{type: :booking_confirmed, resource_ids: ["resource_1"]}
...> event.type
:booking_confirmed

Summary

Types

t()

A canonical booking event.

Canonical event name.

Types

t()

@type t() :: %ExBooking.Event{
  data: map(),
  meeting_type_id: String.t() | nil,
  resource_ids: [String.t()],
  routing_context: map(),
  slot: ExBooking.Interval.t() | nil,
  type: type()
}

A canonical booking event.

type()

@type type() ::
  :booking_reserved
  | :booking_confirmed
  | :booking_rescheduled
  | :booking_canceled
  | :booking_expired
  | :booking_no_show

Canonical event name.