Current section
Files
Jump to
Current section
Files
lib/invoicex/extra/money.ex
defmodule Invoicex.Extra.Money do
@moduledoc """
Special model to store and validate moeny with currency or its percentage value.
"""
use Ecto.Schema
alias Ecto.Changeset
alias Invoicex.Enum.Currency
@required_fields [:currency, :value]
@fields @required_fields
embedded_schema do
field(:currency, Currency)
field(:value, :decimal)
end
@doc false
def changeset(money \\ %__MODULE__{}, attrs \\ %{}) do
money
|> Changeset.cast(attrs, @fields)
|> Changeset.validate_required(@required_fields)
end
end