João Paulo Dubas 410a509faa
Some checks reported errors
continuous-integration/drone/push Build encountered an error
chore: apply credo suggestions (#3)
Mainly add module docs and fix some aliases.
2022-04-22 00:49:00 +00:00

35 lines
674 B
Elixir

defmodule Wabanex.User do
@moduledoc """
Schema of a user in the system.
"""
use Ecto.Schema
import Ecto.Changeset
alias Wabanex.Training
@primary_key {:id, :binary_id, autogenerate: true}
@fields ~w(name email password)a
schema "users" do
field :name, :string
field :email, :string
field :password, :string
has_many :trainings, Training
timestamps()
end
def changeset(params) do
%__MODULE__{}
|> cast(params, @fields)
|> validate_required(@fields)
|> validate_length(:name, min: 2)
|> validate_length(:password, min: 6)
|> validate_format(:email, ~r/@/)
|> unique_constraint([:email])
end
end