defmodule Mv.Membership do @moduledoc """ Ash Domain for membership management. ## Resources - `Member` - Club members with personal information and custom field values - `CustomFieldValue` - Dynamic custom field values attached to members - `CustomField` - Schema definitions for custom fields ## Public API The domain exposes these main actions: - Member CRUD: `create_member/1`, `list_members/0`, `update_member/2`, `destroy_member/1` - Custom field value management: `create_custom_field_value/1`, `list_custom_field_values/0`, etc. - Custom field management: `create_custom_field/1`, `list_custom_fields/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.CustomFieldValue do define :create_custom_field_value, action: :create define :list_custom_field_values, action: :read define :update_custom_field_value, action: :update define :destroy_custom_field_value, action: :destroy end resource Mv.Membership.CustomField do define :create_custom_field, action: :create define :list_custom_fields, action: :read define :update_custom_field, action: :update define :destroy_custom_field, action: :destroy end end end