WIP member and properties

This commit is contained in:
Moritz 2025-04-28 17:56:58 +02:00
parent 2116ee1e91
commit 45fc52d6fb
Signed by: moritz
GPG key ID: 1020A035E5DD0824
10 changed files with 446 additions and 1 deletions

35
lib/membership/member.ex Normal file
View file

@ -0,0 +1,35 @@
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