saveinmed/backend/README.md
2026-01-08 14:28:34 -03:00

110 lines
2.3 KiB
Markdown

# SaveInMed Backend API
## 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.
---
This service handles the core business logic, data persistence, and external integrations for the SaveInMed B2B Marketplace.
## 🏗 Architecture
The backend follows a layered architecture to ensure separation of concerns and maintainability.
```mermaid
graph TD
%% Clients
Client([Client Application])
%% Entry Point
subgraph "API Layer"
Router[Router / Middleware]
AuthH[Auth Handler]
UserH[User Handler]
ProdH[Product Handler]
CartH[Cart Handler]
OrderH[Order Handler]
PayH[Payment Handler]
ShipH[Shipping Handler]
end
%% Business Logic
subgraph "Service Layer"
AuthS[Auth Service]
UserS[User Service]
ProdS[Catalog Service]
OrderS[Order Service]
PayS[Payment Service]
ShipS[Shipping Service]
end
%% Data / Infra
subgraph "Infrastructure Layer"
DB[(PostgreSQL)]
MP[Mercado Pago Adapter]
Asaas[Asaas Adapter]
Stripe[Stripe Adapter]
Mapbox[Mapbox Service]
end
%% Flows
Client --> Router
Router --> AuthH
Router --> UserH
Router --> ProdH
Router --> CartH
Router --> OrderH
Router --> PayH
Router --> ShipH
AuthH --> AuthS
UserH --> UserS
ProdH --> ProdS
CartH --> OrderS
OrderH --> OrderS
PayH --> PayS
ShipH --> ShipS
AuthS --> DB
UserS --> DB
ProdS --> DB
OrderS --> DB
PayS --> MP
PayS --> Asaas
PayS --> Stripe
ShipS --> Mapbox
%% Styling
style Client fill:#f9f,stroke:#333
style Router fill:#ff9,stroke:#333
style DB fill:#94a3b8,stroke:#333
```
## 🛠 Tech Stack
- **Language**: Go 1.24+
- **Framework**: Standard Library + Chi/Mux (inferred)
- **Database**: PostgreSQL
- **Docs**: Swagger/OpenAPI
## 🚀 Key Features
- High-performance REST API
- JWT Authentication
- Role-Based Access Control
- Payment Gateway Integration (Mercado Pago, Asaas, Stripe)
- Real-time Inventory Management
## 🧪 Tests
```bash
go test ./... -cover
```
> Para matriz completa (com/sem banco e Playwright), veja: [docs/TESTES.md](../docs/TESTES.md)