# 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 ```mermaid 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.