refactor: Rename Property/PropertyType to CustomFieldValue/CustomField
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Complete refactoring of resources, database tables, code references, tests, and documentation for improved naming consistency.
This commit is contained in:
parent
47f18e9ef3
commit
8400e727a7
31 changed files with 1002 additions and 647 deletions
|
|
@ -81,8 +81,8 @@ lib/
|
|||
├── membership/ # Membership domain
|
||||
│ ├── membership.ex # Domain definition
|
||||
│ ├── member.ex # Member resource
|
||||
│ ├── property.ex # Custom property resource
|
||||
│ ├── property_type.ex # Property type resource
|
||||
│ ├── custom_field_value.ex # Custom field value resource
|
||||
│ ├── custom_field.ex # CustomFieldValue type resource
|
||||
│ └── email.ex # Email custom type
|
||||
├── mv/ # Core application modules
|
||||
│ ├── accounts/ # Domain-specific logic
|
||||
|
|
@ -121,8 +121,8 @@ lib/
|
|||
│ │ │ ├── search_bar_component.ex
|
||||
│ │ │ └── sort_header_component.ex
|
||||
│ │ ├── member_live/ # Member CRUD LiveViews
|
||||
│ │ ├── property_live/ # Property CRUD LiveViews
|
||||
│ │ ├── property_type_live/
|
||||
│ │ ├── custom_field_value_live/ # CustomFieldValue CRUD LiveViews
|
||||
│ │ ├── custom_field_live/
|
||||
│ │ └── user_live/ # User management LiveViews
|
||||
│ ├── auth_overrides.ex # AshAuthentication overrides
|
||||
│ ├── endpoint.ex # Phoenix endpoint
|
||||
|
|
@ -740,14 +740,14 @@ end
|
|||
# Good - preload relationships
|
||||
members =
|
||||
Member
|
||||
|> Ash.Query.load(:properties)
|
||||
|> Ash.Query.load(:custom_field_values)
|
||||
|> Mv.Membership.list_members!()
|
||||
|
||||
# Avoid - causes N+1 queries
|
||||
members = Mv.Membership.list_members!()
|
||||
Enum.map(members, fn member ->
|
||||
# This triggers a query for each member
|
||||
Ash.load!(member, :properties)
|
||||
Ash.load!(member, :custom_field_values)
|
||||
end)
|
||||
```
|
||||
|
||||
|
|
@ -1723,13 +1723,13 @@ end
|
|||
# Good - preload relationships
|
||||
members =
|
||||
Member
|
||||
|> Ash.Query.load([:properties, :user])
|
||||
|> Ash.Query.load([:custom_field_values, :user])
|
||||
|> Mv.Membership.list_members!()
|
||||
|
||||
# Avoid - causes N+1
|
||||
members = Mv.Membership.list_members!()
|
||||
Enum.map(members, fn member ->
|
||||
properties = Ash.load!(member, :properties) # N queries!
|
||||
custom_field_values = Ash.load!(member, :custom_field_values) # N queries!
|
||||
end)
|
||||
```
|
||||
|
||||
|
|
@ -1904,7 +1904,7 @@ defmodule Mv.Membership.Member do
|
|||
@moduledoc """
|
||||
Represents a club member with their personal information and membership status.
|
||||
|
||||
Members can have custom properties defined by the club administrators.
|
||||
Members can have custom_field_values defined by the club administrators.
|
||||
Each member is optionally linked to a user account for self-service access.
|
||||
|
||||
## Examples
|
||||
|
|
@ -2050,7 +2050,7 @@ open doc/index.html
|
|||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- Member custom properties feature
|
||||
- Member custom_field_values feature
|
||||
- Email synchronization between user and member
|
||||
|
||||
### Changed
|
||||
|
|
@ -2081,14 +2081,14 @@ open doc/index.html
|
|||
|
||||
```bash
|
||||
# Create feature branch
|
||||
git checkout -b feature/member-custom-properties
|
||||
git checkout -b feature/member-custom-custom_field_values
|
||||
|
||||
# Work on feature
|
||||
git add .
|
||||
git commit -m "Add custom properties to members"
|
||||
git commit -m "Add custom_field_values to members"
|
||||
|
||||
# Push to remote
|
||||
git push origin feature/member-custom-properties
|
||||
git push origin feature/member-custom-custom_field_values
|
||||
```
|
||||
|
||||
### 8.2 Commit Messages
|
||||
|
|
@ -2127,7 +2127,7 @@ Closes #123
|
|||
```
|
||||
fix: resolve N+1 query in member list
|
||||
|
||||
Preload properties relationship when loading members to avoid N+1 queries.
|
||||
Preload custom_field_values relationship when loading members to avoid N+1 queries.
|
||||
|
||||
Performance improvement: reduced query count from 100+ to 2.
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue