# UPPI MARKETPLACE - VISAO GERAL DO PROJETO

## 1. AMBIENTES E DOMINIOS

| Ambiente | Path | Dominio | Stack | Banco |
|----------|------|---------|-------|-------|
| **ERP Central** | `/var/www/erp.uppi.app.br/` | erp.uppi.app.br | Adianti 8.4 + PHP 8.2 | `db_erp` |
| **API REST** | `/var/www/api.uppi.app.br/` | api.uppi.app.br | PHP puro (Router + Middleware + JWT) | `db_erp` |
| **Marketplace Web** | `/var/www/mkt.uppi.app.br/` | mkt.uppi.app.br | PHP MVC puro + Vue.js 3 + Bootstrap 5 | `db_erp` |
| **CD-01** | `/var/www/cd01.uppi.app.br/` | cd01.uppi.app.br | Adianti 8.4 + PHP 8.2 | `db_erp_cd01` |

### Conexao MySQL Compartilhada
- **Host:** uppi.app.br
- **User:** tokstore
- **Port:** 3306
- **Bancos:** `db_erp` (ERP + Marketplace + API — banco unico) e `db_erp_cd01` (CD-01 local)
- **IMPORTANTE:** Todas as tabelas do marketplace (67) ficam dentro de `db_erp`, junto com as tabelas do framework Adianti (permission, system_*, etc.)

---

## 2. ARQUITETURA GERAL

```
                    +------------------+
                    |   CLIENTE/BUYER  |
                    +--------+---------+
                             |
              +--------------+--------------+
              |                             |
    +---------v---------+       +-----------v-----------+
    | mkt.uppi.app.br   |       | api.uppi.app.br       |
    | PHP MVC + Vue.js   |       | API REST (148 endpoints)|
    | Catalogo, Checkout |       | JWT, Middleware, JSON  |
    | Seller Center      |       | Mobile + Webhooks      |
    +---------+----------+       +-----------+-----------+
              |                              |
              +------+-------+---------------+
                     |       |
            +--------v-------v--------+
            |        db_erp           |
            | Adianti tables + 67     |
            | tabelas marketplace     |
            +--------+-------+--------+
                     |       |
         +-----------+       +------------+
         |                                |
+--------v---------+          +-----------v-----------+
| erp.uppi.app.br  |          | cd01.uppi.app.br      |
| Adianti ERP      |          | Adianti CD-01         |
| DRE, Repasses    |          | WMS, TMS, Picking     |
| Motor Regras     |          | Opera OFFLINE          |
| Fiscal           |          | Sync via Redis         |
+------------------+          +------------------------+
     db_erp (mesmo)               db_erp_cd01
```

---

## 3. DIVISAO DE RESPONSABILIDADES

### Marketplace Web (mkt.uppi.app.br)
- Catalogo publico, busca, produto
- Carrinho, checkout, pagamento
- Area do cliente (pedidos, devolucoes, favoritos)
- Seller Center (produtos, pedidos, financeiro, ads)
- Admin basico (dashboard, aprovacoes)
- SSR para SEO + Vue.js progressivo

### API REST (api.uppi.app.br)
- 148 endpoints RESTful
- Autenticacao JWT (15min) + Refresh Token (7d)
- 8 Middlewares (CORS, Auth, Role, Seller, RateLimit, Idempotency, JsonBody, RequestLog)
- Webhooks de gateways e transportadoras
- Consumido por: Apps Mobile, Frontend Vue.js (AJAX), Integrações

### ERP Central (erp.uppi.app.br)
- **Obrigatorio/Exclusivo:** DRE, conciliacao, repasses, motor de regras CRUD, gestao CDs, config sistema
- **Preferencial:** aprovar sellers, moderar produtos, disputas, reprocessar fiscal
- Acessa db_marketplace via MarketplaceBridge (chama Services diretamente)
- ~30 telas Adianti em 6 modulos

### CD-01 (cd01.uppi.app.br)
- WMS: recebimento, picking, estoque, inventario
- TMS: rotas, entregas, motoristas, veiculos
- Banco proprio (20 tabelas), opera offline
- Sync via sync_outbox -> Redis -> Central
- App Logistico conecta aqui

---

## 4. BANCOS DE DADOS

### db_erp (Banco Unico Central — ERP + Marketplace + API)
- Tabelas do framework Adianti (permission, system_group, system_user, system_program, etc.)
- 56 tabelas DDL principal do marketplace + 11 tabelas TMS/CDs/Regras = **67 tabelas marketplace**
- stock_consolidated (cache do estoque de todos CDs)
- Dominios: auth, sellers, catalogo, OMS, pagamentos, financeiro/ledger, fiscal, ads, notificacoes, chat, cupons, frete, wishlist, event_store, config
- **Todos os ambientes (ERP, API, MKT) acessam este mesmo banco**

### db_erp_cd01 (CD-01 — Banco Local)
- 20 tabelas locais: cd_config, products_local, orders_local, wms_*, tms_*, sync_outbox, users_local
- Estoque local e fonte de verdade para WMS/TMS
- Opera offline, sync com db_erp via Redis/cron

---

## 5. FLUXO PRINCIPAL DE UM PEDIDO

```
1. Cliente navega catalogo (mkt)
2. Adiciona ao carrinho (mkt + Vue.js)
3. Checkout com PIX/Cartao (mkt -> PaymentService -> Gateway)
4. OrderService cria pedido + splits por seller
5. EventDispatcher publica order.created
6. OMS Worker processa -> aguarda pagamento
7. Gateway webhook confirma pagamento -> payment.paid
8. OMS Worker confirma pedido -> cria splits
9. Stock Worker reserva estoque no CD correto
10. Fulfillment Worker cria picking order no CD
11. CD-01: operador faz picking (Adianti/App)
12. Fiscal Worker emite NF-e via SEFAZ
13. TMS cria rota, motorista entrega com POD
14. Settlement Worker agenda repasse ao seller (D+14)
15. ERP executa repasse, registra no ledger
```

---

## 6. ORDEM DE IMPLEMENTACAO

| # | O que | Onde | Dependencia | Prazo |
|---|-------|------|-------------|-------|
| 1 | DDL + Seed (db_marketplace) | MySQL | Nenhuma | 1 dia |
| 2 | DDL CD-01 (db_erp_cd01) | MySQL | #1 | 0.5 dia |
| 3 | Engine MVC + Layout | mkt.uppi.app.br | #1 | 3-4 dias |
| 4 | API Core (Router, Middleware, Auth) | api.uppi.app.br | #1 | 3-4 dias |
| 5 | Views + Componentes + Vue.js | mkt.uppi.app.br | #3 | 4-5 dias |
| 6 | Services de Negocio (14 services) | Shared (api + mkt) | #1 | 5-7 dias |
| 7 | Controllers Cliente + Checkout | mkt + api | #5, #6 | 5-6 dias |
| 8 | Seller Center + Admin | mkt + api | #7 | 5-7 dias |
| 9 | Workers Assincronos (9 workers) | api.uppi.app.br | #6 | 3-4 dias |
| 10 | ERP Adianti (Bridge + 30 telas) | erp.uppi.app.br | #6, #1 | 5-7 dias |
| 11 | CD-01 Adianti (WMS/TMS) | cd01.uppi.app.br | #2, #6 | 5-7 dias |
| 12 | Integracoes (Gateways, Correios, SEFAZ) | api | #6 | 3-5 dias |
| 13 | Deploy + Producao | Todos | Tudo | 2-3 dias |

---

## 7. STACK TECNOLOGICO CONSOLIDADO

| Componente | Tecnologia |
|------------|-----------|
| Backend MVC | PHP 8.2 puro (sem framework) |
| ERP | Adianti Framework 8.4 |
| Frontend SSR | Templates PHP + Bootstrap 5 |
| Frontend Reativo | Vue.js 3 ESM (progressivo) |
| Banco | MySQL 8.0 |
| Cache/Filas | Redis 7 |
| Workers | PHP CLI + Supervisor |
| Auth API | JWT HS256 + Refresh Token |
| Fiscal | NFePHP (sped-nfe) |
| Pagamento | MercadoPago + Getnet |
| Frete | Correios + Melhor Envio |
| Mobile | React Native + Expo (futuro) |
| Deploy | Apache 2.4 + PHP-FPM |
| CI/CD | GitHub Actions |
