defmodule ArcadiaCloud.Catalog.ResourcePrice do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @foreign_key_type :binary_id schema "resource_prices" do field :resource_kind, :string field :unit, :string field :unit_price_cents, :integer field :currency, :string, default: "AUD" field :effective_from, :date field :effective_to, :date timestamps(type: :utc_datetime) end def changeset(price, attrs) do price |> cast(attrs, [ :resource_kind, :unit, :unit_price_cents, :currency, :effective_from, :effective_to ]) |> validate_required([:resource_kind, :unit, :unit_price_cents, :effective_from]) |> validate_length(:currency, is: 3) end end