From 6995c17c5557672efa890c05bee676b623712dd5 Mon Sep 17 00:00:00 2001 From: Tiago Yamamoto Date: Thu, 18 Dec 2025 11:24:30 -0300 Subject: [PATCH] Add Gemini prompt guide for migrations and auth --- backend/docs/gemini-prompts.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 backend/docs/gemini-prompts.md diff --git a/backend/docs/gemini-prompts.md b/backend/docs/gemini-prompts.md new file mode 100644 index 0000000..05d146e --- /dev/null +++ b/backend/docs/gemini-prompts.md @@ -0,0 +1,24 @@ +# Roteiro de Prompts para o Gemini CLI + +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.