# Field Ownership Matrix — Work Orders **Fase:** 0 **Depende de:** [data-ownership-model.md](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](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 | |