Cycle Management & Member Integration closes #279 #294

Open
moritz wants to merge 49 commits from feature/279_cycle_management into main
Showing only changes of commit 28b2be1125 - Show all commits

View file

@ -42,9 +42,9 @@ defmodule Mv.MembershipFees.Changes.ValidateSameInterval do
is_nil(current_type_id) ->
changeset
# If new type is nil, that's allowed (removing type)
# If new type is nil, reject the change (membership_fee_type_id is required)
is_nil(new_type_id) ->
changeset
add_nil_type_error(changeset)
# Both types exist - validate intervals match
true ->
@ -125,6 +125,17 @@ defmodule Mv.MembershipFees.Changes.ValidateSameInterval do
)
end
# Add validation error when trying to set membership_fee_type_id to nil
defp add_nil_type_error(changeset) do
message = "Cannot remove membership fee type. A membership fee type is required."
Ash.Changeset.add_error(
changeset,
field: :membership_fee_type_id,
message: message
)
end
# Format interval atom to human-readable string
defp format_interval(:monthly), do: "monthly"
defp format_interval(:quarterly), do: "quarterly"