mitgliederverwaltung/lib/membership/member.ex

35 lines
736 B
Elixir

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