Backend - Estado Atual (2026-03-10)¶
Este documento consolida o estado real do backend em billings-ease-backend na data 2026-03-10.
Fonte de verdade¶
- Registro de rotas:
internal/http/bootstrap/routes.go - Contratos OpenAPI:
openapi.v1.yamleopenapi.v2.yaml - Módulos por domínio:
internal/modules/* - Catálogo de módulos:
internal/modules/module_access/catalog.go
Arquitetura em operação¶
- Go 1.25 + Echo + GORM + PostgreSQL
- organização modular por contexto (
auth,general,client,professional,admin,marketplace,module_access,plans) - API versionada em paralelo:
/api,/api/v1,/api/v2 /api/v2com middleware de resolução depublic_id
Registro de rotas (estado real)¶
Rotas públicas¶
/health/docs*e/metrics(protegidos por middleware admin)- auth público com prefixos
/api,/api/v1,/api/v2 - planos públicos nos três prefixos
- webhook público de cursos/marketplace nos três prefixos
Rotas protegidas¶
Todos os grupos protegidos recebem:
AuthMiddlewareObservationContextMiddlewareObservationReadOnlyMiddleware
Apenas /api/v2 recebe adicionalmente:
publicid.ResolveMiddleware
Controle de módulos¶
Endpoints principais (v2):
GET /api/v2/admin/modules/catalogGET /api/v2/admin/modules/settingsPUT /api/v2/admin/modules/settingsGET /api/v2/admin/users/:id/module-overridesPUT /api/v2/admin/users/:id/module-overridesGET /api/v2/users/me/modules
Catálogo canônico atual inclui:
comunicacao.chatpacientes.cadastro,pacientes.crm,pacientes.ciclos,pacientes.registro_diario,pacientes.analise_ciclo,pacientes.saudeconsultas.gerenciarfinanceiro.informacoes_pagamento,financeiro.extrato,financeiro.saqueseducacional.cursoseducacional.cursos.catalogo,educacional.cursos.player,educacional.cursos.bundles,educacional.cursos.reviewseducacional.cursos.profissional.gestao,educacional.cursos.profissional.recomendacoes,educacional.cursos.profissional.bundles,educacional.cursos.profissional.materiais,educacional.cursos.profissional.revenue
Marketplace e cursos (status operacional)¶
- rotas cliente/profissional/admin ativas no backend
- implementação unificada em
internal/modules/marketplace/coursescom subpastas por ator (client,professional,admin,webhooks) - webhook Mercado Pago ativo
- operação financeira e reconciliação presentes
- deleção lógica de curso com fila assíncrona de remoção de vídeos publicada em produção
- hardening por kill switches:
MARKETPLACE_CHECKOUT_ENABLEDMARKETPLACE_WEBHOOK_ENABLEDMARKETPLACE_SETTLEMENT_ENABLED
Observabilidade e segurança¶
- middleware Prometheus global
/metricsprotegido pordocsauth.AdminOnlyMiddleware- CORS com configuração explícita por ambiente (
cmd/api/main.go) - feature flags via
internal/config/feature_flags.go
Atualização incremental (2026-03-10)¶
Mudanças recentes relevantes:
- manutenção da refatoração de fertilidade/MOB com núcleo compartilhado em
internal/modules/general/services/fertility/; - marketplace com exclusão lógica de cursos e remoção assíncrona de vídeos (
POST /marketplace/professional/courses/:id/delete); - adição da migração
046_marketplace_course_logical_delete.sql; - estabilidade do contrato HTTP preservada para clientes web/mobile (mudanças com foco de domínio e operação).
Riscos e pontos de atenção¶
- Manter três prefixos de API eleva custo de compatibilidade.
- Alterações no catálogo canônico de módulos precisam preservar aliases legados.
- Mudanças em middleware de
v2afetam parsing de IDs públicos em várias rotas.