mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-01 19:13:13 +00:00
54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
# 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
|
|
|
|
```text
|
|
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: _______
|