debianize-mobilizon/lib/mobilizon/events/participant_metadata.ex
Thomas Citharel de047c8939
Various typespec and compilation improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:20 +02:00

37 lines
872 B
Elixir

defmodule Mobilizon.Events.Participant.Metadata do
@moduledoc """
Participation stats on event
"""
use Ecto.Schema
import Ecto.Changeset
alias Mobilizon.Web.Email.Checker
@type t :: %__MODULE__{
email: String.t(),
confirmation_token: String.t(),
cancellation_token: String.t(),
message: String.t(),
locale: String.t()
}
@attrs [:email, :confirmation_token, :cancellation_token, :message, :locale]
@derive Jason.Encoder
embedded_schema do
field(:email, :string)
field(:confirmation_token, :string)
field(:cancellation_token, :string)
field(:message, :string)
field(:locale, :string)
end
@doc false
@spec changeset(t, map) :: Ecto.Changeset.t()
def changeset(schema, params) do
schema
|> cast(params, @attrs)
|> Checker.validate_changeset()
end
end