formatting and refactor member fields constant

This commit is contained in:
carla 2025-12-02 10:02:52 +01:00 committed by Rafael Epplée
parent e81aecce48
commit dce2053ce7
6 changed files with 149 additions and 104 deletions

View file

@ -114,26 +114,26 @@ defmodule Mv.Membership.Setting do
# Validate that member_field_visibility map contains only boolean values
# This allows dynamic fields without hardcoding specific field names
validate fn changeset, _context ->
visibility = Ash.Changeset.get_attribute(changeset, :member_field_visibility)
visibility = Ash.Changeset.get_attribute(changeset, :member_field_visibility)
if visibility && is_map(visibility) do
invalid_entries =
Enum.filter(visibility, fn {_key, value} ->
not is_boolean(value)
end)
if visibility && is_map(visibility) do
invalid_entries =
Enum.filter(visibility, fn {_key, value} ->
not is_boolean(value)
end)
if Enum.empty?(invalid_entries) do
:ok
else
{:error,
field: :member_field_visibility,
message: "All values in member_field_visibility must be booleans"}
end
else
:ok
end
end,
on: [:create, :update]
if Enum.empty?(invalid_entries) do
:ok
else
{:error,
field: :member_field_visibility,
message: "All values in member_field_visibility must be booleans"}
end
else
:ok
end
end,
on: [:create, :update]
end
attributes do
@ -151,7 +151,8 @@ defmodule Mv.Membership.Setting do
attribute :member_field_visibility, :map,
allow_nil?: true,
public?: true,
description: "Configuration for member field visibility in overview (JSONB map). Keys are member field names (atoms), values are booleans."
description:
"Configuration for member field visibility in overview (JSONB map). Keys are member field names (atoms), values are booleans."
timestamps()
end