defmodule Mv.Membership do @moduledoc """ Ash Domain for membership management. ## Resources - `Member` - Club members with personal information and custom properties - `Property` - Dynamic custom field values attached to members - `PropertyType` - Schema definitions for custom properties ## Public API The domain exposes these main actions: - Member CRUD: `create_member/1`, `list_members/0`, `update_member/2`, `destroy_member/1` - Property management: `create_property/1`, `list_property/0`, etc. - PropertyType management: `create_property_type/1`, `list_property_types/0`, etc. ## Admin Interface The domain is configured with AshAdmin for management UI. """ use Ash.Domain, extensions: [AshAdmin.Domain, AshPhoenix] admin do show? true end resources do resource Mv.Membership.Member do define :create_member, action: :create_member define :list_members, action: :read define :update_member, action: :update_member define :destroy_member, action: :destroy end resource Mv.Membership.Property do define :create_property, action: :create define :list_property, action: :read define :update_property, action: :update define :destroy_property, action: :destroy end resource Mv.Membership.PropertyType do define :create_property_type, action: :create define :list_property_types, action: :read define :update_property_type, action: :update define :destroy_property_type, action: :destroy end end end