# 07 - ROADMAP DE IMPLEMENTACAO

## FASE 1 — MVP (6-8 semanas)
> Cliente navega, compra e paga com PIX

### Etapa 1 — Banco de Dados (1-2 dias)
```
[ ] Criar 67 tabelas marketplace dentro de db_erp (banco ja existe)
[ ] Executar DDL principal (56 tabelas) em db_erp
[ ] Executar DDL extra: TMS (7), CDs (2), Regras (2), stock_consolidated em db_erp
[ ] Criar tabelas auxiliares: idempotency_keys, idempotency_cache em db_erp
[ ] Executar seed: roles, admin, categorias, warehouse, system_settings
[ ] Criar 20 tabelas do CD-01 dentro de db_erp_cd01 (banco ja existe)
[ ] Criar conexao dbcd01.php no ERP (para acessar CD)
[ ] Criar conexao dbcentral.php no CD-01 (para sync com db_erp)
```

### Etapa 2 — Engine MVC Marketplace (3-4 dias)
```
[ ] Criar estrutura de diretorios em /var/www/mkt.uppi.app.br/
[ ] public/index.php (Front Controller)
[ ] public/.htaccess (Apache rewrite)
[ ] app/Core/App.php (Bootstrap singleton)
[ ] app/Core/Router.php (params nomeados, groups, middleware)
[ ] app/Core/Request.php
[ ] app/Core/Response.php
[ ] app/Core/Controller.php (render, json, validate, seo)
[ ] app/Core/Model.php (query builder: where, join, paginate)
[ ] app/Core/View.php
[ ] app/Core/Middleware.php (interface)
[ ] app/Core/Session.php (dot notation, flash, CSRF)
[ ] app/Core/Database.php (PDO pool lazy)
[ ] app/Config/app.php
[ ] app/Config/database.php (db_erp)
[ ] app/Config/routes.php
[ ] app/Middleware/AuthMiddleware.php
[ ] app/Middleware/CsrfMiddleware.php
[ ] app/Middleware/GuestMiddleware.php
[ ] Helpers globais (config, url, asset, route, redirect, money, e, csrf_field, etc.)
[ ] TESTE: HomeController minimo -> pagina abre no browser
```

### Etapa 3 — Views & Layout (4-5 dias)
```
[ ] resources/views/layouts/master.php (navbar + footer + Vue global)
[ ] resources/views/layouts/auth.php
[ ] resources/views/components/ (7 componentes)
    [ ] meta-tags.php, navbar.php, footer.php, product-card.php
    [ ] rating-stars.php, breadcrumb.php, pagination.php
[ ] public/css/app.css (variaveis CSS, product-card, skeleton)
[ ] public/vendors/ (Bootstrap 5, Vue 3 ESM, SweetAlert2)
[ ] Models basicos: User, Product, Category, Brand, Cart, CartItem
[ ] Controllers basicos: HomeController, CatalogController, ProductController, AuthController
[ ] Services basicos: AuthService, CatalogService
[ ] Paginas: home.php, catalog.php, product.php, login.php, register.php
[ ] RESULTADO: Site navegavel com home, catalogo, produto, login
```

### Etapa 4 — Vue.js Interatividade (3-4 dias)
```
[ ] public/js/app.js (inicializador global, MiniCart, Toast, Search)
[ ] Composables: useApi.js, useCart.js, useToast.js, useAuth.js
[ ] Componentes: MiniCart.js, ToastContainer.js, SearchSuggestions.js, QuantitySelector.js
[ ] Apps: ProductApp.js (variantes, frete), CartApp.js (cupom, totais)
[ ] CheckoutApp.js (wizard 5 steps)
[ ] Controllers AJAX: CartController, SearchController
[ ] RESULTADO: Carrinho reativo, busca autocomplete, variantes de produto
```

### Etapa 5 — Services de Negocio (5-7 dias)
```
[ ] Shared/StateMachine.php
[ ] Shared/EventDispatcher.php
[ ] Shared/IdempotencyGuard.php
[ ] Shared/OrderStateMachine.php
[ ] OrderService.php (createFromCheckout, changeStatus, createSplits)
[ ] PaymentService.php (processPayment, handleWebhook, refund)
[ ] StockService.php (reserve, release, deduct, inbound)
[ ] LedgerService.php (record, recordSale)
[ ] SettlementService.php (generateSettlement, executeTransfer)
[ ] FiscalService.php (emitNFe, signAndSubmit, cancel, emitCCe)
[ ] ReturnService.php (request, approve, receiveAndInspect)
[ ] AdsService.php
[ ] Gateways/GatewayInterface.php
[ ] Gateways/MercadoPagoGateway.php
```

### Etapa 6 — Checkout + Integracao Real (5-7 dias)
```
[ ] CheckoutController.php (frete + finalizar)
[ ] OrderController.php (lista, detalhe, cancelar, tracking)
[ ] Integracao MercadoPago (PIX real)
[ ] Integracao frete (Correios/Melhor Envio)
[ ] RESULTADO: Comprar -> Pagar PIX -> Receber pedido confirmado
```

---

## FASE 2 — Sellers + Workers (4-6 semanas)
> Sellers operam, pedidos splitados, processamento automatico

### Etapa 7 — Seller Center (5-7 dias)
```
[ ] app/Middleware/SellerMiddleware.php
[ ] resources/views/layouts/seller.php (sidebar)
[ ] Seller/DashboardController.php
[ ] Seller/ProductController.php (CRUD + publicar + estoque)
[ ] Seller/OrderController.php (aceitar/rejeitar/despachar)
[ ] Seller/FinanceController.php (dashboard, extrato, repasses)
[ ] SellerDashboardApp.js (Vue)
[ ] Views seller: dashboard, produtos, pedidos, financeiro
```

### Etapa 8 — Admin + Moderacao (3-4 dias)
```
[ ] app/Middleware/AdminMiddleware.php
[ ] resources/views/layouts/admin.php
[ ] Admin/DashboardController.php (KPIs)
[ ] Admin/SellerController.php (aprovar/suspender)
[ ] Admin/OrderController.php (forcar status)
[ ] Admin/FinanceController.php (aprovar repasses)
```

### Etapa 9 — Workers Assincronos (3-4 dias)
```
[ ] workers/QueueManager.php
[ ] workers/JobSerializer.php
[ ] workers/BaseWorker.php
[ ] workers/SchedulerWorker.php
[ ] workers/OmsWorker.php
[ ] workers/PaymentWorker.php
[ ] workers/StockWorker.php
[ ] workers/FulfillmentWorker.php
[ ] workers/NotificationWorker.php
[ ] bin/worker.php (entry point CLI)
[ ] supervisor/uppi-workers.conf
```

---

## FASE 3 — API + Fiscal + ERP (4-6 semanas)
> API REST, NF-e, ERP operacional

### Etapa 10 — API REST (5-7 dias)
```
[ ] Criar estrutura /var/www/api.uppi.app.br/
[ ] src/Core/ (Router, Request, Response, MiddlewarePipeline, Container, ExceptionHandler)
[ ] src/Middleware/ (8 middlewares)
[ ] src/Auth/JwtService.php
[ ] src/Validation/Validator.php
[ ] src/Controller/ (21 controllers)
[ ] config/routes.php (148 rotas)
[ ] bin/worker.php, bin/cron.php
```

### Etapa 11 — Fiscal (3-4 dias)
```
[ ] Integrar NFePHP (sped-nfe)
[ ] FiscalService completo (emissao, assinatura, SEFAZ)
[ ] workers/FiscalWorker.php
[ ] workers/SettlementWorker.php
[ ] workers/AdsWorker.php
[ ] workers/ReturnWorker.php
```

### Etapa 12 — ERP Adianti (5-7 dias)
```
[ ] Criar conexao dbcd01.php no ERP
[ ] app/service/MarketplaceBridge.php
[ ] Models TRecord (Seller, Product, Order, etc.)
[ ] control/marketplace/ (6 telas)
[ ] control/finance/ (5 telas: DRE, Conciliacao, Repasses, Ledger, Dashboard)
[ ] control/logistics/ (5 telas)
[ ] control/fiscal/ (3 telas)
[ ] control/config/ (4 telas: Settings, Regras, Categorias, Transportadoras)
[ ] menu.xml
```

---

## FASE 4 — CD + TMS + Mobile (6-10 semanas)
> CD operacional, entregas com GPS, apps mobile

### Etapa 13 — CD-01 Adianti (5-7 dias)
```
[ ] DDL do CD-01 (se nao criado na Etapa 1)
[ ] Models TRecord (19 models)
[ ] Services: WmsStockService, WmsPickingService, WmsReceivingService, TmsRouteService, SyncService
[ ] control/wms/ (14 telas)
[ ] control/tms/ (6 telas)
[ ] control/sync/ (3 telas)
[ ] control/admin/ (2 telas)
[ ] menu.xml do CD
```

### Etapa 14 — TMS Completo (3-5 dias)
```
[ ] TmsService (createRoute, assignDriver, recordDelivery)
[ ] CdSyncService (sync catalogo, estoque, reconciliacao)
[ ] RulesEngineService (motor + 12 regras exemplo)
[ ] CD Sync Worker
```

### Etapa 15 — Apps Mobile (8-12 semanas)
```
[ ] Shared: API Client, Auth Store, Types, Utils
[ ] App Buyer: 15 telas (catalogo, produto, carrinho, checkout, pedidos, tracking)
[ ] App Seller: 12 telas (dashboard, produtos, pedidos, financeiro)
[ ] App Logistico: 10 telas (picking, recebimento, rotas, GPS, barcode scanner, POD)
[ ] Push Notifications
[ ] EAS Build + Publicacao stores
```

### Etapa 16 — Producao (2-3 dias)
```
[ ] VHosts Apache (marketplace, api, erp, cd01)
[ ] SSL Let's Encrypt
[ ] deploy.sh com rollback
[ ] backup.sh (MySQL + uploads)
[ ] Health check endpoints
[ ] Supervisor config producao
[ ] Crontab completo
[ ] Security hardening (UFW, Fail2ban, SSH)
```

---

## RESUMO DE PRAZOS

| Fase | Semanas | Entregas Principais |
|------|---------|-------------------|
| **1 - MVP** | 6-8 | Site + checkout + PIX |
| **2 - Sellers** | 4-6 | Seller Center + Admin + Workers |
| **3 - API+Fiscal+ERP** | 4-6 | 148 endpoints + NF-e + 30 telas ERP |
| **4 - CD+TMS+Mobile** | 6-10 | WMS/TMS + 3 apps + producao |
| **TOTAL** | **20-30** | Ecossistema completo |

---

## PRIORIDADE DE IMPLEMENTACAO (Proxima sessao)

Vamos comecar pela **Etapa 1 (Banco de Dados)** seguida da **Etapa 2 (Engine MVC)**.
Isso dara a base para todo o resto do projeto.
