194 lines
8.3 KiB
Markdown
194 lines
8.3 KiB
Markdown
# Lacunas e requisitos pendentes (Marketplace B2B)
|
|
|
|
> **Local do documento:** `docs/GAPS_ANALISE_B2B.md`
|
|
|
|
## Status (pronto x faltando)
|
|
|
|
**Pronto**
|
|
- Nenhum item confirmado como concluído nesta análise de lacunas.
|
|
|
|
**Faltando**
|
|
- Itens listados nas seções abaixo.
|
|
|
|
---
|
|
|
|
|
|
Este documento descreve o que **falta** para cumprir o cenário solicitado:
|
|
- **Comprador só descobre o vendedor no final** do fluxo.
|
|
- **Taxa invisível de 12%** (não pode ser mostrada ao comprador).
|
|
- **Comissão do vendedor de 6%** (sugestão do usuário: “vai ficar 6% para vendedor”; confirmar regra de negócio e origem dos 6%).
|
|
|
|
> Observação: a regra atual citada na documentação do backend indica taxa invisível de **12%** para compradores.
|
|
> Antes de implementar, alinhar o **modelo final** de taxas (12% buyer fee + 6% seller fee? 12% total? split?).
|
|
|
|
---
|
|
|
|
## 1) Backend (Go API)
|
|
|
|
### 1.1 Regras de negócio / taxas
|
|
- [ ] **Definir modelo final de taxas** (12% para comprador, 6% para vendedor):
|
|
- esclarecer se são **duas taxas distintas** ou **partes de uma taxa total**.
|
|
- documentar em `config` (ex.: `BUYER_FEE_RATE`, `SELLER_FEE_RATE`) e no Swagger.
|
|
- [ ] **Normalizar cálculo de preços**:
|
|
- guardar preços **base** (seller price) e **final** (buyer price) com rastreabilidade.
|
|
- garantir que a taxa **não aparece** em payloads do comprador.
|
|
- [ ] **Auditoria de taxas**:
|
|
- registrar no pedido: `base_price`, `buyer_fee_rate`, `buyer_fee_amount`, `seller_fee_rate`, `seller_fee_amount`, `payout_amount`.
|
|
- expor esses campos **somente** para backoffice/admin.
|
|
|
|
### 1.2 Ocultação do vendedor
|
|
- [ ] **Mascarar dados do vendedor** nos endpoints públicos do catálogo/pesquisa:
|
|
- retornar apenas atributos neutros (ex.: distância, categoria, SLA, estoque, validade) sem identidade.
|
|
- [ ] **Revelar vendedor somente no final**:
|
|
- definir claramente qual evento é “final” (ex.: confirmação do pagamento, confirmação do pedido).
|
|
- criar endpoint específico para **revelação pós-compra**.
|
|
|
|
### 1.3 Contratos de API
|
|
- [ ] **Revisar schemas** do Swagger para refletir:
|
|
- campos mascarados antes da compra;
|
|
- campos completos após compra;
|
|
- campos financeiros internos (somente backoffice/admin).
|
|
- [ ] **Versionar mudanças** (ex.: `/api/v1` → `/api/v2` se necessário para evitar breaking change).
|
|
|
|
### 1.4 Segurança e compliance
|
|
- [ ] **Garantir controle de acesso**:
|
|
- comprador não pode inferir vendedor por `id`, `slug` ou dados indiretos.
|
|
- [ ] **Logs de auditoria** para preço final vs. preço base.
|
|
- [ ] **Testes automatizados** garantindo que vendedor não aparece em respostas pré-compra.
|
|
|
|
---
|
|
|
|
## 2) Frontend (Marketplace React)
|
|
|
|
### 2.1 Ocultação do vendedor no fluxo
|
|
- [ ] **Remover nome/identidade do vendedor** das telas de catálogo/listagem/carrinho.
|
|
- [ ] **Substituir por informações neutras**:
|
|
- faixa de SLA, localização genérica (ex.: “Região Metropolitana”), disponibilidade, avaliações agregadas.
|
|
- [ ] **Bloquear UI que revele vendedor** antes do “evento final”.
|
|
|
|
### 2.2 Exibição de preços
|
|
- [ ] **Mostrar somente preço final** (com taxa invisível aplicada), sem linha de “taxa”.
|
|
- [ ] **Texto/tooltip neutro** (ex.: “preço final do produto”).
|
|
|
|
### 2.3 Ponto de revelação
|
|
- [ ] **Tela pós-compra** com dados completos do vendedor.
|
|
- [ ] **Estados intermediários** (checkout, pagamento pendente) sem revelar vendedor.
|
|
|
|
---
|
|
|
|
## 3) Frontend principal (saveinmed-frontend)
|
|
|
|
> Se este frontend também for usado por compradores/vendedores finais, as mesmas regras acima precisam ser espelhadas.
|
|
|
|
- [ ] **Revisar listagens** para garantir que vendedor não aparece antes da compra.
|
|
- [ ] **Revisar preços** para exibir apenas valor final (taxa invisível).
|
|
- [ ] **Revelação pós-compra** na área de pedidos.
|
|
|
|
---
|
|
|
|
## 4) Backoffice (NestJS)
|
|
|
|
### 4.1 Administração de taxas
|
|
- [ ] **Tela e endpoints** para configurar:
|
|
- `buyer_fee_rate` (ex.: 12%).
|
|
- `seller_fee_rate` (ex.: 6%).
|
|
- [ ] **Histórico de alterações** e auditoria.
|
|
|
|
### 4.2 Visibilidade e auditoria
|
|
- [ ] **Dashboard financeiro** com:
|
|
- preço base, preço final, taxas, payout do vendedor.
|
|
- [ ] **Exportação** para contabilidade (CSV/Excel).
|
|
|
|
### 4.3 Compliance
|
|
- [ ] **Logs de decisão** (por pedido) demonstrando que comprador não viu taxa.
|
|
|
|
---
|
|
|
|
## 5) Alinhamentos necessários (negócio + produto)
|
|
- [ ] **Definir “momento final”** de revelação do vendedor.
|
|
- [ ] **Definir regra de taxa** (12% buyer + 6% seller ou modelo único).
|
|
- [ ] **Definir termos legais** (taxa invisível, transparência fiscal para vendedor).
|
|
- [ ] **Definir experiência de suporte** (ex.: disputa, devolução) sem expor vendedor antes da compra.
|
|
|
|
---
|
|
|
|
## 6) Alinhamento Inicial (Semana 1) — Plano detalhado
|
|
|
|
### 6.1 Revisar lacunas no documento
|
|
**Objetivo:** validar e ajustar as lacunas descritas neste documento com as áreas de Produto, Negócios e Tech.
|
|
**Passos:**
|
|
1. **Revisão guiada do cenário**: confirmar com stakeholders o fluxo “comprador só descobre vendedor no final” e a “taxa invisível de 12%”.
|
|
2. **Conferir impactos por domínio**:
|
|
- Backend: preço final x base, auditoria, controle de acesso.
|
|
- Frontend(s): ocultação de vendedor e taxa invisível.
|
|
- Backoffice: gestão e auditoria de taxas.
|
|
3. **Validar riscos de compliance**: alinhar transparência fiscal para vendedor e registros de auditoria.
|
|
4. **Atualizar este documento** com decisões finais.
|
|
**Entregáveis da semana:** documento revisado + decisões registradas em seção 5.
|
|
|
|
### 6.2 Definir MVP do backend e critérios de aceite por módulo
|
|
**Objetivo:** fechar o escopo mínimo do backend para suportar o fluxo B2B sem quebrar o modelo atual.
|
|
|
|
#### MVP Backend (escopo mínimo)
|
|
1. **Taxas e precificação**
|
|
- Configurar taxas (`buyer_fee_rate`, `seller_fee_rate`) via config/DB.
|
|
- Calcular preço final (buyer) e payout (seller) com rastreabilidade.
|
|
2. **Ocultação do vendedor**
|
|
- Listagem e detalhes **sem identificação do vendedor** até o evento final.
|
|
- Endpoint pós-compra para revelar vendedor.
|
|
3. **Auditoria e segurança**
|
|
- Logs de auditoria e campos internos para backoffice/admin.
|
|
- Regras de acesso garantindo anonimato pré-compra.
|
|
4. **Contratos de API**
|
|
- Swagger atualizado com campos pré e pós-compra.
|
|
|
|
#### Critérios de aceite por módulo (backend)
|
|
**Módulo 1 — Taxas e precificação**
|
|
- [ ] Dado um produto, o preço final exibido ao comprador **já inclui** a taxa invisível.
|
|
- [ ] Os campos de taxa **não aparecem** para o comprador.
|
|
- [ ] A auditoria registra base, taxas e payout do vendedor.
|
|
|
|
**Módulo 2 — Ocultação do vendedor**
|
|
- [ ] Endpoints de catálogo e carrinho **não retornam** dados identificáveis do vendedor.
|
|
- [ ] Existe endpoint de revelação pós-compra com dados completos.
|
|
- [ ] Testes confirmam que não há vazamento indireto (id, slug).
|
|
|
|
**Módulo 3 — Segurança e controle de acesso**
|
|
- [ ] Rotas de auditoria são restritas a admin/backoffice.
|
|
- [ ] Logs registram decisões de preço e ocultação.
|
|
|
|
**Módulo 4 — Contratos de API**
|
|
- [ ] Swagger documenta claramente os campos pré-compra e pós-compra.
|
|
- [ ] Versionamento definido caso haja breaking change.
|
|
|
|
### 6.3 Atualizar backlog e priorizar dependências críticas
|
|
**Objetivo:** ordenar entregas e identificar bloqueios.
|
|
|
|
#### Backlog priorizado (ordem de execução)
|
|
1. **Definir regra final de taxas (Negócio + Produto)**
|
|
2. **Modelo de dados e auditoria (Backend)**
|
|
3. **Ocultação do vendedor (Backend + Frontend)**
|
|
4. **Endpoint de revelação pós-compra (Backend + Frontend)**
|
|
5. **Swagger/contratos e versionamento (Backend)**
|
|
6. **Backoffice: gestão de taxas e auditoria (Backoffice)**
|
|
|
|
#### Dependências críticas
|
|
- **Regra final de taxa** (bloqueia cálculo de preço, auditoria e UI).
|
|
- **Definição do evento “final”** (bloqueia endpoint de revelação).
|
|
- **Modelo de dados de pedido** com campos de auditoria (bloqueia backoffice).
|
|
|
|
---
|
|
|
|
## 7) Plano de ação (resumido)
|
|
**Semana 1**
|
|
- Validar regras de negócio e evento final.
|
|
- Revisar e atualizar este documento.
|
|
- Definir MVP backend e critérios de aceite.
|
|
|
|
**Semana 2**
|
|
- Implementar cálculo de taxas, auditoria e mascaramento.
|
|
- Atualizar Swagger e contratos.
|
|
|
|
**Semana 3**
|
|
- Integração com frontend(s) e backoffice.
|
|
- Testes de segurança/anonimato pré-compra.
|