Visão geral
O serviço expõe endpoints REST, persiste dados em PostgreSQL via TypeORM, pode ser registrado no Eureka para descoberta de serviços e publica eventos em RabbitMQ. Em ambientes com gateway, o tráfego chega ao Admin Service através do gateway; em desenvolvimento, o cliente pode falar direto com o serviço na porta 8081.Em produção, o gateway (ex.: porta 8080) encaminha requisições para o Admin Service e adiciona o prefixo
/admin-service na maioria dos paths. O path /protocols é exposto sem prefixo.Camadas da aplicação
| Camada | Responsabilidade |
|---|---|
| HTTP (Express) | Rotas, middlewares (CORS, JSON, logger), Swagger/OpenAPI. |
| Controllers | Recebem request, validam entrada, chamam serviços e devolvem response. |
| Services | Regras de negócio, orquestração, chamadas a repositórios e integrações. |
| Repositories | Acesso a dados (TypeORM), abstração sobre o banco. |
| Infra | TypeORM (PostgreSQL), RabbitMQ, Eureka, serviços externos (ex.: CNPJ, Firebase). |
Módulos
O código está organizado por domínio. Cada módulo agrupa rotas, controllers, serviços e repositórios daquele contexto.| Módulo | Descrição |
|---|---|
| User | Usuários (admin, médico, paciente), perfis, aprovação, autenticação (Firebase, etc.). |
| Institution | Instituições de saúde, unidades (locais), vínculo com usuários e coordenadores. |
| Service | Serviços, tipos de serviço, histórico de preços, upload de arquivos. |
| Specialty | Especialidades médicas utilizadas pelos médicos. |
| Protocol | Protocolos clínicos, versões de formulário, perguntas, opções e faixas de pontuação. |
| Notification | Notificações e jobs agendados (cron). |
Fluxo de uma requisição
Exemplo simplificado: cliente chama um endpoint do Admin Service (com ou sem gateway).Integrações
- PostgreSQL — Persistência principal via TypeORM (entidades, migrations, repositórios).
- Eureka — Registro e descoberta do serviço em ambientes que usam Netflix Eureka.
- RabbitMQ — Publicação de mensagens/eventos para outros serviços.
- Serviços externos — Ex.: validação de CNPJ, autenticação (Firebase), conforme configuração do projeto.
Próximos passos
Introdução
Recursos da API e base URLs.
API Reference
Endpoints, parâmetros e schemas.