mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-01 11:03:14 +00:00
85 lines
2.8 KiB
Markdown
85 lines
2.8 KiB
Markdown
# 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.
|