Open
Description
Just as suggestion or maybe I missing something and this can be already achieved:
defmodule SomeIdentityParams do
use Params.Schema
import App.Params.Helpers
@fields ~w(id code)
schema do
field :id, :id
field :code, :string
# more here
end
def changeset(changeset, params) do
cast(changeset, params, @fields)
|> at_least_one_should_be_present([:id, :code])
end
end
# this one looks fine
defmodule SomeControllerParams do
use Params.Schema
@fields ~w(tarif_id some_identity)a
schema do
field :tarif_id, :id
embeds_one :some_identity, SomeIdentityParams
end
def changeset(cs, params) do
cast(cs, params, @fields)
|> validate_required(@fields)
|> cast_embed(:passenger, required: true)
end
end
# but it can be much shorter
defmodule SomeControllerParams do
use Params.Schema, %{
tarif_id: :id,
some_identity: SomeIdentityParams
}
end