feat: prevent deletion of membership fee type when used as default in settings
This commit is contained in:
parent
af7ae2b722
commit
c445b78157
3 changed files with 56 additions and 0 deletions
|
|
@ -120,6 +120,28 @@ defmodule Mv.MembershipFees.MembershipFeeType do
|
|||
end
|
||||
end,
|
||||
on: [:destroy]
|
||||
|
||||
# Prevent deletion if used as default in settings
|
||||
validate fn changeset, _context ->
|
||||
if changeset.action_type == :destroy do
|
||||
require Ash.Query
|
||||
|
||||
setting_count =
|
||||
Mv.Membership.Setting
|
||||
|> Ash.Query.filter(default_membership_fee_type_id == ^changeset.data.id)
|
||||
|> Ash.count!()
|
||||
|
||||
if setting_count > 0 do
|
||||
{:error,
|
||||
message: "Cannot delete membership fee type: it's used as default in settings"}
|
||||
else
|
||||
:ok
|
||||
end
|
||||
else
|
||||
:ok
|
||||
end
|
||||
end,
|
||||
on: [:destroy]
|
||||
end
|
||||
|
||||
attributes do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue