S2a: purge legacy Form Builder PHP code and routes
This commit is contained in:
@@ -2955,6 +2955,30 @@ Every contract in §31.1-31.8 has a corresponding integration test in
|
||||
Tests are part of CI. Contract changes require test updates (and this
|
||||
ARCH section update) before merge.
|
||||
|
||||
### 31.10 Tag sync integration (BACKLOG FORM-02)
|
||||
|
||||
Replaces the S1-era `TagSyncService` that read the legacy
|
||||
`person_field_values` table. Purged in S2a; rebuilt in S2b/S2c against
|
||||
the new FormBuilder.
|
||||
|
||||
**Trigger:** `FormSubmissionSubmitted` event (ARCH §17.1) OR explicit
|
||||
call from `PersonController::approve()` after status transitions to
|
||||
`approved`.
|
||||
|
||||
**Listener:** `SyncTagPickerValuesToUserTagsListener` — for the given
|
||||
submission, finds all `form_values` whose field has
|
||||
`field_type=TAG_PICKER`, and upserts rows into `user_organisation_tags`
|
||||
with `source=self_reported`, respecting `person.user_id` (skip if null).
|
||||
Only syncs to the subject person's user account.
|
||||
|
||||
**Failure mode:** log at warning level; never throws into the submission
|
||||
lifecycle. Reason: a tag-sync failure must not block registration.
|
||||
|
||||
**Call site removed in S2a:** `PersonController::approve()` and
|
||||
`PersonIdentityService::syncRegistrationTags()` used to call
|
||||
`TagSyncService::syncFromRegistration($person)` directly. The rebuilt
|
||||
flow is listener-driven — no direct service injection required.
|
||||
|
||||
---
|
||||
|
||||
## End of ARCH v1.2
|
||||
|
||||
Reference in New Issue
Block a user