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