saveinmed/backend-old
NANDO9322 b519b9004c fix: correção completa do fluxo de pedidos e sincronização de estoque
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.
2026-01-26 15:25:51 -03:00
..
cmd fix: correção completa do fluxo de pedidos e sincronização de estoque 2026-01-26 15:25:51 -03:00
docs Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
internal fix: correção completa do fluxo de pedidos e sincronização de estoque 2026-01-26 15:25:51 -03:00
.env feat(geral): implementa fluxo de aprovação, api de endereços e acesso master 2026-01-21 17:20:06 -03:00
.env.example Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
.gitignore Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
api Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
BACKEND.md Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
Dockerfile Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
go.mod Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
go.sum Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
login.json feat(geral): implementa fluxo de aprovação, api de endereços e acesso master 2026-01-21 17:20:06 -03:00
main Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00
README.md Rename backend folder to backend-old 2026-01-16 10:51:52 -03:00

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