Seeds split, Credo strict, and member/settings UI polish #458

Merged
moritz merged 18 commits from feat/seeds into main 2026-03-04 20:19:51 +01:00
2 changed files with 5 additions and 7 deletions
Showing only changes of commit ea350ab315 - Show all commits

View file

@ -55,9 +55,10 @@ for attrs <- fee_type_configs do
end
# Resolve default fee type (Standard, 120€ yearly) for settings
# Filter by name and interval to avoid ambiguity if multiple "Standard" types exist
default_fee_type =
Mv.MembershipFees.MembershipFeeType
|> Ash.Query.filter(name == "Standard")
|> Ash.Query.filter(name == "Standard" and interval == :yearly)
|> Ash.read_one!(authorize?: false, domain: Mv.MembershipFees)
# 2. Custom fields (authorize?: false for bootstrap)

View file

@ -250,6 +250,8 @@ Enum.with_index(member_configs)
fee_type_id = if fee_type_index, do: Enum.at(all_fee_types, fee_type_index).id, else: nil
cycle_status = Enum.at(cycle_statuses, index)
# Do not include membership_fee_type_id in upsert so re-runs do not overwrite
# existing assignments; set via update below only when member has none
base_attrs = %{
first_name: config.first_name,
last_name: config.last_name,
@ -262,13 +264,8 @@ Enum.with_index(member_configs)
country: Enum.at(countries_list, index)
}
member_attrs =
if fee_type_id,
do: Map.put(base_attrs, :membership_fee_type_id, fee_type_id),
else: base_attrs
member =
Membership.create_member!(member_attrs,
Membership.create_member!(base_attrs,
upsert?: true,
upsert_identity: :unique_email,
actor: admin_user_with_role