Usher.Invitation (Usher v0.5.1)

View Source

Invitation schema for Usher.

Represents an invitation with a unique token, expiration date, and usage tracking.

Summary

Functions

Changeset for creating and updating invitations.

Types

t()

@type t() :: %Usher.Invitation{
  __meta__: term(),
  custom_attributes: term(),
  expires_at: DateTime.t() | nil,
  id: Ecto.UUID.t(),
  inserted_at: DateTime.t(),
  name: String.t() | nil,
  token: String.t(),
  updated_at: DateTime.t(),
  usages: [Usher.InvitationUsage.t()] | Ecto.Association.NotLoaded.t()
}

Functions

changeset(invitation, attrs, opts \\ [])

Changeset for creating and updating invitations.

Options

  • :require_name - Whether to require the name field (defaults to Config.name_required?())

Examples

iex> Usher.Invitation.changeset(%Usher.Invitation{}, %{
...>   token: "abc123",
...>   expires_at: ~U[2024-12-31 23:59:59Z]
...> })
%Ecto.Changeset{valid?: true}

iex> Usher.Invitation.changeset(%Usher.Invitation{}, %{})
%Ecto.Changeset{valid?: false, errors: [token: {"can't be blank", _}]}

iex> Usher.Invitation.changeset(%Usher.Invitation{}, %{token: "abc", expires_at: ~U[2024-12-31 23:59:59Z]}, require_name: true)
%Ecto.Changeset{valid?: false, errors: [name: {"can't be blank", _}]}