feat: implement full CRUD for membership fee types with settings UI
- Add interval immutability and deletion prevention validations - Add settings validation for default_membership_fee_type_id - Create MembershipFeeSettingsLive for admin UI with form handling - Add comprehensive test coverage (unit, integration, settings)
This commit is contained in:
parent
82897d5cd3
commit
da1fd3da73
7 changed files with 754 additions and 2 deletions
|
|
@ -141,6 +141,21 @@ defmodule Mv.Membership.Setting do
|
|||
end
|
||||
end,
|
||||
on: [:create, :update]
|
||||
|
||||
# Validate default_membership_fee_type_id exists if set
|
||||
validate fn changeset, _context ->
|
||||
fee_type_id = Ash.Changeset.get_attribute(changeset, :default_membership_fee_type_id)
|
||||
|
||||
if fee_type_id do
|
||||
case Ash.get(Mv.MembershipFees.MembershipFeeType, fee_type_id) do
|
||||
{:ok, _} -> :ok
|
||||
{:error, _} ->
|
||||
{:error, field: :default_membership_fee_type_id, message: "Membership fee type not found"}
|
||||
end
|
||||
else
|
||||
:ok # Optional, can be nil
|
||||
end
|
||||
end, on: [:create, :update]
|
||||
end
|
||||
|
||||
attributes do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue