defmodule ArcadiaCloud.Catalog.Plan do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @foreign_key_type :binary_id schema "plans" do field :code, :string field :name, :string field :description, :string field :active, :boolean, default: true has_many :versions, ArcadiaCloud.Catalog.PlanVersion timestamps(type: :utc_datetime) end def changeset(plan, attrs) do plan |> cast(attrs, [:code, :name, :description, :active]) |> validate_required([:code, :name]) |> unique_constraint(:code) end end