mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
3.7 KiB
3.7 KiB
Field Ownership Matrix — Work Orders
Fase: 0
Depende de: data-ownership-model.md
Status: Draft para sign-off CTO + PO
Legenda
- Owner escritor: ator autorizado a criar/alterar o valor canônico.
- Sync sobrescreve?: se ingest DynamoDB pode substituir após WO existir.
- ManualEditFlag: primeira edição SHOC bloqueia Sync no campo (ver manual-edit-flag-design.md).
Matriz completa
| Campo | Agregado | Owner escritor | Sync sobrescreve? | Conflito SHOC vs Sync |
|---|---|---|---|---|
| LifecycleStatus | Core | SHOC | Não após 1ª edição SHOC | SHOC vence |
| LegacyStatus | Core | — (read-only) | Não | N/A |
| AssignTo | Core | SHOC | Não após ManualEditFlag | SHOC vence |
| ScheduledDate | Scheduling | SHOC | Não | SHOC vence |
| ScheduledStart | Scheduling | SHOC | Parcial (ingest inicial) | SHOC após flag |
| ScheduledEnd | Scheduling | SHOC | Não | SHOC vence |
| TargetWeek | Scheduling | SHOC | Não | SHOC vence |
| ScheduleWeekOnly | Scheduling | SHOC | Não | SHOC vence |
| DueDate | Core | SHOC + Sync | Sim se nunca editado SHOC | SHOC se ManualEditFlag |
| Description | Core | SHOC + Sync | Sim se nunca editado SHOC | SHOC se ManualEditFlag |
| WorkerOrderTitle | Core | SHOC + Sync | Sim se nunca editado SHOC | SHOC se ManualEditFlag |
| SiteCode | Core | SHOC + Sync | Sim na criação; não após SHOC | SHOC após flag |
| Building | Core | SHOC + Sync | Sim na criação | SHOC após flag |
| LocationId | Core | SHOC + Sync | Sim na criação | SHOC após flag |
| WorkOrderType | Core | SHOC + Sync | Sim na criação ingest | SHOC após flag |
| InternalWONumber / WoNumber | Core | SHOC (Sync só na criação) | Não | SHOC only |
| ExternalWorkOrderId | Core | Sync | Sim (idempotente key) | Sync only |
| VendorId / VendorName | Dispatch | SHOC + Vendor | Não | Domínios separados |
| Dispatch Status | Dispatch | Vendor + SHOC | Não | Por contexto |
| Checklist / Signoff | Dispatch | Vendor | Não | Vendor vence |
| DocStatus | Completion | SHOC | Não | SHOC only |
| RescheduleCount | Analytics | Domain events | Não | N/A |
| CarriedOver | Analytics | Jobs (WeekRolled) | Não | N/A |
| OriginalWeek / OriginalDate | Tracking | SHOC (set-once) | Não | SHOC vence |
| POC / WorkOrderContacts.Notes | Contacts | SHOC | Não | SHOC vence |
| Priority / Severity | Core | SHOC + Sync | Sim se nunca editado | SHOC após flag |
| Status (legado string) | Core | — (deprecated write) | Não | Migrar para LifecycleStatus |
| Trade / Problem / SubTrade | Core | SHOC | Parcial Sync ingest | SHOC após flag |
| Customer / Source | Core | Sync + SHOC | Sim na criação | SHOC após flag |
| Attachments / Photos | Core | SHOC + Vendor | Não overwrite mútuo | Por domínio |
Campos board (14 colunas) — ownership resumido
| Coluna board | Fonte | Owner |
|---|---|---|
| WO# | Core.InternalWONumber | SHOC |
| Type | Core.WorkOrderType | SHOC |
| Site | Core.SiteCode | SHOC |
| Status | Core.LifecycleStatus | SHOC |
| Assignee | Core.AssignTo | SHOC |
| Due | Core.DueDate | SHOC + Sync |
| Scheduled | Scheduling.ScheduledDate | SHOC |
| Vendor | Dispatch (primário) | SHOC via Dispatch |
| Appt | Dispatch.ScheduledDate | Dispatch |
| Past Due | Derivado | — |
| Carried | Analytics.CarriedOver | Jobs |
| Reschedule | Analytics.RescheduleCount | Domain |
| Doc | Completion.DocStatus | SHOC |
| Actions | — | SHOC UI |
Critérios de aceite
- PO valida campos board vs matriz
- Sync merge implementado referencia esta matriz
- ManualEditFlag design aprovado
Assinaturas
| Papel | Data |
|---|---|
| CTO | |
| PO |