ex_trainer/lib/wabanex/training.ex
Joao P Dubas 58c4601203 [day-04] add exercise schema
So a training is a collection of exercises that have a description and a
protocol to be followed.
2021-06-26 17:26:14 +00:00

32 lines
607 B
Elixir

defmodule Wabanex.Training do
use Ecto.Schema
import Ecto.Changeset
alias Wabanex.{Exercise, User}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
@fields [:start_date, :end_date, :user_id]
@required_fields [:start_date, :user_id]
schema "trainings" do
field :start_date, :date
field :end_date, :date
belongs_to :user, User
has_many :exercises, Exercise
timestamps()
end
def changeset(params) do
%__MODULE__{}
|> cast(params, @fields)
|> validate_required(@required_fields)
|> cast_assoc(:exercises)
end
end