83 lines
2 KiB
Markdown
83 lines
2 KiB
Markdown
# Backend API - Documentação Técnica
|
|
|
|
## Visão Geral
|
|
|
|
API de alta performance em Go para o marketplace SaveInMed. Implementa Clean Architecture com foco em operações críticas de negócio.
|
|
|
|
## Arquitetura
|
|
|
|
```
|
|
cmd/api/ → Ponto de entrada
|
|
internal/
|
|
├── config/ → Configurações e env vars
|
|
├── domain/ → Entidades e regras de negócio
|
|
├── http/
|
|
│ ├── handler/ → HTTP handlers (controllers)
|
|
│ └── middleware/→ Auth JWT, CORS, logging
|
|
├── payments/ → Gateways: Stripe, MercadoPago, Mock
|
|
├── repository/ → Camada de persistência (PostgreSQL)
|
|
├── server/ → Setup do servidor HTTP
|
|
└── usecase/ → Casos de uso (serviços)
|
|
```
|
|
|
|
## Taxa Invisível do Marketplace
|
|
|
|
O sistema implementa uma **taxa invisível de 12%** para compradores:
|
|
|
|
```
|
|
Vendedor cadastra: R$ 10,00
|
|
Comprador vê: R$ 11,20 (+12%)
|
|
Marketplace recebe: R$ 1,20
|
|
Vendedor recebe: R$ 10,00
|
|
```
|
|
|
|
**Configuração**: `BUYER_FEE_RATE=0.12`
|
|
|
|
## Gateways de Pagamento
|
|
|
|
| Gateway | Arquivo | Descrição |
|
|
|---------|---------|-----------|
|
|
| **Stripe** | `stripe.go` | Cartões internacionais |
|
|
| **MercadoPago** | `mercadopago.go` | Pix, boleto, cartões |
|
|
| **Mock** | `mock.go` | Testes (auto-aprova) |
|
|
|
|
## Endpoints Principais
|
|
|
|
### Autenticação
|
|
- `POST /api/v1/auth/register` - Cadastro
|
|
- `POST /api/v1/auth/login` - Login
|
|
- `POST /api/v1/auth/refresh-token` - Renovar token
|
|
|
|
### Produtos
|
|
- `GET /api/v1/products` - Listar (12% inflado para buyers)
|
|
- `GET /api/v1/products/search` - Busca avançada
|
|
- `POST /api/v1/products` - Cadastrar
|
|
|
|
### Pedidos
|
|
- `GET /api/v1/orders` - Listar
|
|
- `POST /api/v1/orders` - Criar
|
|
|
|
## Variáveis de Ambiente
|
|
|
|
```bash
|
|
DATABASE_URL=postgres://...
|
|
JWT_SECRET=your-secret
|
|
BUYER_FEE_RATE=0.12
|
|
MARKETPLACE_COMMISSION=2.5
|
|
BACKEND_PORT=8080
|
|
```
|
|
|
|
## Executar
|
|
|
|
```bash
|
|
cd backend
|
|
go run ./cmd/api
|
|
```
|
|
|
|
## Testes
|
|
|
|
```bash
|
|
go test ./... -cover
|
|
```
|
|
|
|
> Para matriz completa (com/sem banco e Playwright), veja: [docs/TESTES.md](./TESTES.md)
|