saveinmed/docs/BACKEND.md
Tiago Yamamoto 8f1e893142 feat: major implementation - seeder, payments, docs
Seeder API:
- 110 pharmacies across 5 cities (Goiânia 72, Anápolis 22, Nerópolis 10, Senador Canedo 5, Aparecida 1)
- 3-300 products per pharmacy
- Dynamic city/state in company records

Payment Gateways:
- stripe.go: Stripe integration with PaymentIntent
- mock.go: Mock gateway with auto-approve for testing
- PaymentResult and RefundResult domain types

Documentation:
- docs/BACKEND.md: Architecture, invisible fee, endpoints
- docs/SEEDER_API.md: City distribution, product counts
- docs/MARKETPLACE.md: Frontend structure, stores, utils
- docs/BACKOFFICE.md: Admin features, encrypted settings
2025-12-26 23:39:49 -03:00

1.9 KiB

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

DATABASE_URL=postgres://...
JWT_SECRET=your-secret
BUYER_FEE_RATE=0.12
MARKETPLACE_COMMISSION=2.5
BACKEND_PORT=8080

Executar

cd backend
go run ./cmd/api

Testes

go test ./... -cover