shoc-frontend-new/tmp/pr-descriptions/pr6-multi-poc.md

37 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Jira
- [SH-218](https://luby-us.atlassian.net/browse/SH-218) — multiple additional contacts
- Related: [SH-108](https://luby-us.atlassian.net/browse/SH-108)
## QA residual
- Pass-UI / Blocked-BE until `additionalContacts` lands. Documented in pending BE contract.
## Summary
- Add `additionalContacts[]` (`{ name, phone, notes? }`) across board types, table rows, wizard draft, create payload, and PATCH expansion.
- Site dialog and wizard step 2 share editable primary POC fields plus **+ Add point of contact** for POC 2+; wizard sidebar summarizes additional contacts.
- Missing backend field tolerates as `[]`; normalized contacts persist via `field: "additionalContacts"` JSON PATCH and POST create.
## Scope
**In:** `additionalContacts` types/mappers (create, detail row, PATCH); Site dialog; wizard step 2; persist + display POC 2+.
**Out:** Add technician (PR7), severity (PR2/PR5), filters, uplift (PR3–PR5).
## Backend contract
See `docs/work-orders/pending-be-contract.md` — confirm `additionalContacts[]` on GET board/detail, POST create, and PATCH before production. Until then FE sends typed payloads and reads missing field as `[]`.
## Test plan
- [ ] Open Site dialog on a board row → edit primary POC, add a second contact, Save → network PATCH includes `additionalContacts` JSON.
- [ ] New WO wizard step 2 → add additional POC → create payload includes `additionalContacts`.
- [ ] Reload board row with BE returning `additionalContacts` → Site dialog shows stored POC 2+.
- [ ] BE omitting `additionalContacts` → no UI errors; lists render empty.
- [ ] `npm run verify` green.
## Notes
- Primary POC remains `pocName` / `pocPhone` / `pocNotes`; `additionalContacts` holds POC 2+ only.
- Site save still PATCHes `siteCode`; POC scalar fields remain local-only cache until BE exposes scalar PATCH.