defmodule Ash.Error.Changes.StaleRecord do @moduledoc "Used when a stale record is attempted to be updated or deleted" use Ash.Error.Exception def_ash_error([:resource, :filters], class: :invalid) defimpl Ash.ErrorKind do def id(_), do: Ash.UUID.generate() def code(_), do: "stale_record" def message(error) do filter = Enum.map_join(error.filters, ", ", fn {key, value} -> "#{key}: #{inspect(value)}" end) "Attempted to update stale record of #{inspect(error.resource)} with filter `#{filter}`" end end end