defmodule Mv.Membership.Member do use Ash.Resource, domain: Mv.Membership, data_layer: AshPostgres.DataLayer postgres do table "members" repo Mv.Repo end actions do defaults [:read, :destroy] create :create_member do primary? true argument :properties, {:array, :map} change manage_relationship(:properties, type: :create) end update :update_member do primary? true require_atomic? false argument :properties, {:array, :map} change manage_relationship(:properties, on_match: :update, on_no_match: :create) end end attributes do uuid_v7_primary_key :id end relationships do has_many :properties, Mv.Membership.Property end end