Files
confient/lib/confient/school/student.ex
2020-12-12 18:38:31 +01:00

26 lines
789 B
Elixir

defmodule Confient.School.Student do
use Ecto.Schema
import Ecto.Changeset
schema "students" do
field :firstname, :string
field :lastname, :string
belongs_to :class, Confient.School.Class
has_many :students_works, Confient.Student.Work
timestamps()
end
@doc false
def changeset(student, attrs) do
student
|> cast(attrs, [:lastname, :firstname, :class_id])
|> unique_constraint(:students_lastname_firstname_class_id_index, message: "Existe déjà")
|> assoc_constraint(:class)
|> update_change(:lastname, fn e -> String.upcase(e) end)
|> update_change(:firstname, fn e -> String.downcase(e) |> String.capitalize() end)
|> validate_required([:lastname, :firstname, :class_id], message: "Le champ ne peut être vide")
end
end