Backend:
- Refatoração crítica em [DeleteOrder](cci:1://file:///c:/Projetos/saveinmed/backend-old/internal/usecase/usecase.go:46:1-46:53): agora devolve o estoque fisicamente para a tabela `products` antes de deletar o pedido, corrigindo o "vazamento" de estoque em pedidos pendentes/cancelados.
- Novo Handler [UpdateInventoryItem](cci:1://file:///c:/Projetos/saveinmed/backend-old/internal/http/handler/product_handler.go:513:0-573:1): implementada lógica para resolver o ID de Inventário (frontend) para o ID de Produto (backend) e atualizar ambas as tabelas (`products` e `inventory_items`) simultaneamente, garantindo consistência entre a visualização e o checkout.
- Compatibilidade Frontend (DTOs):
- Adicionado suporte aos campos `qtdade_estoque` e `preco_venda` (float) no payload de update.
- Removida a validação estrita de JSON (`DisallowUnknownFields`) para evitar erros 400 em payloads com campos extras.
- Registrada rota alias `PUT /api/v1/produtos-venda/{id}` apontando para o manipulador correto.
- Repositório & Testes:
- Implementação de [GetInventoryItem](cci:1://file:///c:/Projetos/saveinmed/backend-old/internal/usecase/usecase_test.go:189:0-191:1) e [UpdateInventoryItem](cci:1://file:///c:/Projetos/saveinmed/backend-old/internal/http/handler/product_handler.go:513:0-573:1) no PostgresRepo e Interfaces de Serviço.
- Correção de erro de sintaxe (declaração duplicada) em [postgres.go](cci:7://file:///c:/Projetos/saveinmed/backend-old/internal/repository/postgres/postgres.go:0:0-0:0).
- Atualização dos Mocks ([handler_test.go](cci:7://file:///c:/Projetos/saveinmed/backend-old/internal/http/handler/handler_test.go:0:0-0:0), [usecase_test.go](cci:7://file:///c:/Projetos/saveinmed/backend-old/internal/usecase/usecase_test.go:0:0-0:0), [product_service_test.go](cci:7://file:///c:/Projetos/saveinmed/backend-old/internal/usecase/product_service_test.go:0:0-0:0)) para refletir as novas assinaturas de interface e corrigir o build.
Frontend:
- Ajustes de integração nos serviços de carrinho, pedidos e gestão de produtos para suportar o fluxo corrigido.
|
||
|---|---|---|
| .. | ||
| cmd | ||
| docs | ||
| internal | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| api | ||
| BACKEND.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| login.json | ||
| main | ||
| README.md | ||
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.
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
go test ./... -cover
Para matriz completa (com/sem banco e Playwright), veja: docs/TESTES.md