saveinmed/docs/GAPS_ANALISE_B2B.md
2026-02-07 08:49:19 -03:00

8.3 KiB

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.