defmodule ArcadiaCloud.Billing.TenantInvoiceLine do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @foreign_key_type :binary_id schema "tenant_invoice_lines" do field :deployment_id, :binary_id field :kind, :string field :resource_kind, :string field :description, :string field :qty, :decimal field :unit, :string field :unit_price_cents, :integer field :amount_cents, :integer field :meta, :map, default: %{} belongs_to :invoice, ArcadiaCloud.Billing.TenantInvoice timestamps(type: :utc_datetime, updated_at: false) end @required ~w(invoice_id kind amount_cents)a @optional ~w(deployment_id resource_kind description qty unit unit_price_cents meta)a def changeset(line, attrs) do line |> cast(attrs, @required ++ @optional) |> validate_required(@required) end end