mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 10:43:13 +00:00
1.9 KiB
1.9 KiB
DAR — Matriz Persistido vs Derivado
Fase: 0
Status: Draft para validação PO + CTO
Matriz de campos (board + domínio)
| Campo FE / conceito | Persistido | Derivado | Fonte / Regra |
|---|---|---|---|
| lifecycleStatus | Sim | Não | Core — LifecycleStatus enum |
| isPastDue | Não | Sim | ScheduledDate < UTC hoje AND NOT status terminal |
| type (Overdue) | Parcial | Sim | Regra type + schedule + status |
| workOrderType | Sim | Não | Core — enum WorkOrderType |
| carriedOver | Sim | Não | Analytics — incremento via WeekRolled only |
| rescheduleCount | Sim | Parcial | Analytics — incremento em mudança ScheduledDate |
| docStatus | Sim | Não | Completion slice |
| dayGroup | Não | Sim | Calculado na leitura a partir de ScheduledDate |
| apptTime | Não | Sim | Projeção Dispatch primário ScheduledDate/Start |
| vendorName / tech | Não | Sim (projeção) | Join Dispatch primário |
| targetWeek | Sim | Não | Scheduling slice |
| scheduledEnd | Sim | Não | Scheduling slice |
| originalWeek / originalDate | Sim | Não | Tracking — set-once na primeira agenda |
| operationalFlags.pastDue | Não* | Sim | *Cache opcional Fase 5; on-read authoritative |
| legacyStatus | Sim (read-only) | Não | Valor string original pré-migration |
Regras de derivação (on-read)
isPastDue
isPastDue = ScheduledDate.HasValue
AND ScheduledDate.Value.Date < DateTime.UtcNow.Date
AND LifecycleStatus NOT IN (Complete, Canceled)
type Overdue (derivado)
WO com type != Overdue pode exibir badge Overdue quando isPastDue && regras de negócio PO confirmadas.
Validação PO
| Pergunta | Resposta PO |
|---|---|
| Past Due separado do lifecycle status? | Sim |
| carriedOver persiste mesmo após reschedule? | Sim |
| Vendor nunca duplicado na WO? | Sim |
Assinatura PO: _________________ Data: _______