ExBooking.MeetingType (ExBooking v0.1.0)

View Source

A bookable meeting template.

A meeting type defines duration, slot grid, participant mode, capacity, and lifecycle policies. slot_interval_min is deliberately independent from duration_min, so a 30-minute meeting can be offered every 15 minutes.

Example

iex> meeting_type = %ExBooking.MeetingType{
...>   id: "intro",
...>   duration_min: 30,
...>   slot_interval_min: 15
...> }
...>
...> {meeting_type.duration_min, meeting_type.slot_interval_min}
{30, 15}

Summary

Types

Which resources must be free for a slot.

Cancellation or reschedule policy.

t()

A meeting type.

Types

participants()

@type participants() :: :one | :collective | :pool

Which resources must be free for a slot.

policy()

@type policy() :: %{min_notice_min: non_neg_integer(), allowed: boolean()}

Cancellation or reschedule policy.

t()

@type t() :: %ExBooking.MeetingType{
  buffers: ExBooking.AvailabilityRule.buffers() | nil,
  cancellation_policy: policy() | nil,
  capacity_required: pos_integer(),
  duration_min: pos_integer(),
  id: String.t(),
  meta: map() | nil,
  participants: participants(),
  reschedule_policy: policy() | nil,
  slot_interval_min: pos_integer() | nil
}

A meeting type.