defmodule ArcadiaCloud.Metering.UsageRecord do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @foreign_key_type :binary_id schema "usage_records" do field :resource_kind, :string field :period_start, :utc_datetime field :granularity, :string, default: "daily" field :qty, :decimal, default: Decimal.new(0) field :sub_attribution, :map belongs_to :deployment, ArcadiaCloud.Deployments.CloudDeployment belongs_to :resource, ArcadiaCloud.Cloud.CloudResource timestamps(type: :utc_datetime, updated_at: false) end @required ~w(deployment_id resource_kind period_start granularity qty)a @optional ~w(resource_id sub_attribution)a def changeset(rec, attrs) do rec |> cast(attrs, @required ++ @optional) |> validate_required(@required) end end