shoc-backend/docs/work-orders/phase-0/consumer-inventory.md

2.8 KiB
Raw Blame History

Consumer Inventory — Work Orders

Fase: 0
Referência: roadmap §11


1. Inventário de consumidores

Consumidor Conexão Código principal Campos mutados Audit hoje?
SHOC React REST JWT Api.SeaHavenIndustries/Controllers/WorkOrderController.cs Status, AssignTo, CRUD parcial via Service Parcial (ChangeStatus/Assignment)
Blazor EF direto SeaHavenIndustries/Data/Services/WorkorderService.cs CRUD completo, comments, status Não
Vendor Portal REST token Api.SeaHavenIndustries/Controllers/VendorPortalController.cs Dispatch checklist, signoff, status Sim (ad hoc)
Sync/Lambda DynamoDB → SQL Api.SeaHavenIndustries/Controllers/SyncController.cs Upsert WO por ExternalWorkOrderId Não
Dispatch API REST DispatchController.cs Dispatch create/update/verify Sim
E-mail SendGrid Deep links Helper/SendMessage Nenhum (read-only links) N/A

2. Diagrama

flowchart TB
    SHOC[SHOC_React] -->|REST_JWT| API[Api_REST]
    VPortal[Vendor_Portal] -->|X_Vendor_Token| API
    Lambda[Lambda_ingest] --> DynamoDB[(DynamoDB)]
    DynamoDB --> Sync[SyncController]
    Sync --> DB[(SQL_Server)]
    API --> DB
    Blazor[Blazor_EF] -->|legado| DB

3. Trilhas de entrega (coexistência)

Trilha Escopo Fase 0+
A — SHOC Fases 0–7; feature flags; piloto dispatchers
B — Blazor Smoke EF pós-migration; bugfix crítico only
C — Vendor Portal Regression checklist cada release WO/Dispatch
D — Lambda/Sync Manter até SHOC produção; merge policy Fase 0

4. Endpoints legado vs board

Tipo Exemplos Política
Legado GetWorkOrderList, ChangeStatus Congelar contrato
Board (Fase 1+) GetWorkOrdersBoard Novos contratos separados

5. Gaps Fase 0 endereçados

Gap Mitigação
Blazor sem audit Congelar; não expandir
Sync overwrite ISyncFieldMergePolicy + ManualEditFlag
Auth WO desabilitada Reativar [Authorize] WorkOrderController
WO# inconsistente Documentar normalização 11 dígitos (Fase 2 execução)

6. Checklist pré-go-live PO

  • App mobile externo confirmado?
  • Data sunset Blazor WO definida?
  • FrontendBaseUrl produção → SHOC?
  • Owner Lambda cutover nomeado?

7. Auth — consumidores e tokens

Consumidor Auth
SHOC JWT Bearer
Sync JWT Bearer ([Authorize] no SyncController)
Vendor Portal X-Vendor-Token (rotas públicas dispatch)
Blazor Cookie Identity (app separado)

Reativar auth em WorkOrderController exige SHOC enviar JWT em todas as chamadas WO.