Current section
Files
Jump to
Current section
Files
lib/invoicex/extra/note.ex
defmodule Invoicex.Extra.Note do
@moduledoc """
Optional data which could be add to `Invoicex.Document.Invoice`.
"""
use Ecto.Schema
alias Ecto.Changeset
@required_fields [:at, :label, :text]
@fields @required_fields ++ [:valid_from, :valid_to]
embedded_schema do
field(:at, :naive_datetime)
field(:label, :string)
field(:text, :string)
field(:valid_from, :naive_datetime)
field(:valid_to, :naive_datetime)
timestamps()
end
@doc false
def changeset(note \\ %__MODULE__{}, attrs \\ %{}) do
note
|> Changeset.cast(attrs, @fields)
|> Changeset.validate_required(@required_fields)
end
end