saveinmed/backend/docs/gemini-prompts.md
Gabbriiel 90467db1ec refactor: substitui backend Medusa por backend Go e corrige testes do marketplace
- Remove backend Medusa.js (TypeScript) e substitui pelo backend Go (saveinmed-performance-core)
- Corrige testes auth.test.ts: alinha paths de API (v1/ sem barra inicial) e campo access_token
- Corrige GroupedProductCard.test.tsx: ajusta distância formatada (toFixed) e troca userEvent por fireEvent com fakeTimers
- Corrige AuthContext.test.tsx: usa vi.hoisted() para mocks e corrige parênteses no waitFor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 04:56:37 -06:00

35 lines
1.7 KiB
Markdown

# Roteiro de Prompts para o Gemini CLI
## Status (pronto x faltando)
**Pronto**
- Conteúdo descrito neste documento.
**Faltando**
- Confirmar no código o estado real das funcionalidades e atualizar esta seção conforme necessário.
---
Este roteiro sequencial ajuda a guiar o Gemini CLI na construção dos componentes críticos do marketplace B2B farmacêutico `saveinmed-performance-core`, garantindo que o contexto de logística com rastreabilidade e a stack Go + PostgreSQL sejam respeitados.
## Parte 1 — Contexto e Infraestrutura de Banco (Migrations)
Atue como um **Arquiteto de Software Especialista em Marketplaces B2B**. O projeto é o `saveinmed-performance-core`, focado em logística farmacêutica com rastreabilidade. Stack: **Go** (puro ou com Echo/Gin) e **PostgreSQL**.
Gere o **SQL de migration** inicial contendo as tabelas:
- `users` (id, nome, email, senha_hash, role: admin/seller/buyer, company_id).
- `addresses` (vinculado a empresas e usuários).
- `inventory` (vinculado a produtos, com lote, validade e quantidade disponível).
- `cart_items` (para persistência de carrinho).
- `audit_logs` (para rastreabilidade de alterações em pedidos/lotes).
Mantenha as chaves estrangeiras com as tabelas `companies` e `products` já existentes no print do Swagger.
## Parte 2 — Autenticação e Autorização (JWT + RBAC)
Com base nas tabelas criadas, implemente em Go o módulo de **Autenticação v1**:
- **POST `/api/v1/auth/register`**: suporte para criação de usuário vinculado a uma empresa.
- **POST `/api/v1/auth/login`**: retorna **JWT** com claims de `Role` e `CompanyID`.
- **Middleware de Auth** que valida o token e verifica permissões (**RBAC**).
Use `golang.org/x/crypto/bcrypt` para o hashing de senhas.