diff --git a/lib/membership/member/changes/set_default_membership_fee_type.ex b/lib/membership/member/changes/set_default_membership_fee_type.ex index 060c590..55f28e6 100644 --- a/lib/membership/member/changes/set_default_membership_fee_type.ex +++ b/lib/membership/member/changes/set_default_membership_fee_type.ex @@ -13,25 +13,29 @@ defmodule Mv.Membership.Member.Changes.SetDefaultMembershipFeeType do current_type_id = Ash.Changeset.get_attribute(changeset, :membership_fee_type_id) if is_nil(current_type_id) do - case Mv.Membership.get_settings() do - {:ok, settings} -> - if settings.default_membership_fee_type_id do - Ash.Changeset.force_change_attribute( - changeset, - :membership_fee_type_id, - settings.default_membership_fee_type_id - ) - else - changeset - end - - {:error, _error} -> - # If settings can't be loaded, continue without default - # This prevents member creation from failing if settings are misconfigured - changeset - end + apply_default_membership_fee_type(changeset) else changeset end end + + defp apply_default_membership_fee_type(changeset) do + case Mv.Membership.get_settings() do + {:ok, settings} -> + if settings.default_membership_fee_type_id do + Ash.Changeset.force_change_attribute( + changeset, + :membership_fee_type_id, + settings.default_membership_fee_type_id + ) + else + changeset + end + + {:error, _error} -> + # If settings can't be loaded, continue without default + # This prevents member creation from failing if settings are misconfigured + changeset + end + end end