feat: registration form fields, section preferences, tag sync & schema updates
Implement EAV system for dynamic event-specific registration fields with organisation-level templates, person section preferences with priority ranking, and TagSyncService for deferred tag_picker sync. New tables: registration_field_templates, registration_form_fields, person_field_values, person_section_preferences. New columns: persons.remarks, events.registration_show_section_preferences, events.registration_show_availability. 58 tests, 126 assertions — all 432 tests pass (zero regressions). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,7 @@ final class Person extends Model
|
||||
'status',
|
||||
'is_blacklisted',
|
||||
'admin_notes',
|
||||
'remarks',
|
||||
'custom_fields',
|
||||
];
|
||||
|
||||
@@ -94,6 +95,16 @@ final class Person extends Model
|
||||
return $this->hasMany(VolunteerAvailability::class);
|
||||
}
|
||||
|
||||
public function fieldValues(): HasMany
|
||||
{
|
||||
return $this->hasMany(PersonFieldValue::class);
|
||||
}
|
||||
|
||||
public function sectionPreferences(): HasMany
|
||||
{
|
||||
return $this->hasMany(PersonSectionPreference::class);
|
||||
}
|
||||
|
||||
public function identityMatches(): HasMany
|
||||
{
|
||||
return $this->hasMany(PersonIdentityMatch::class);
|
||||
|
||||
Reference in New Issue
Block a user