Skip to content

Conversation

@JorgeCasalini
Copy link
Contributor

feature/referrals-by-category

Tipo

New feature (ready)

Descrição

Este Pull Request implementa o endpoint GET /referrals-by-category, permitindo obter encaminhamentos agrupados por categoria, filtrados por período e com possibilidade de ordenação.

Contexto

A funcionalidade faz parte do módulo de encaminhamentos, oferecendo uma visão analítica para enfermeiros e gestores sobre os tipos de encaminhamentos realizados no período selecionado. O objetivo é fornecer dados agregados por categoria.

O que foi realizado

  • Criado schema getReferralByPeriodSchema, permitindo:
    • period
    • limit
    • order (com default para DESC)
    • withPercentage (booleano)
  • Criado schema de resposta referralByCategorySchema, utilizado na tipagem do retorno.
  • Adicionado o método getReferralByPeriod no service para calcular intervalo de datas e delegar ao repositório.
  • Implementado no repositório o método getReferralsByPeriod com:
    • Agrupamento por categoria
    • Ordenação dinâmica
    • Cálculo do total de categorias distintas
  • Criada rota GET /referrals-by-category no controller:
    • Respeita permissão @Roles(['manager', 'nurse'])
    • Retorna { categories, total } seguindo o padrão de sucesso com baseResponseSchema.

Tarefas ou Issue

#204 - [Backend] Criar endpoint de encaminhamentos por categoria

Checklist

  • Eu revisei meu código
  • As alterações passam pelos testes e lint locais

Instruções para teste

  1. Autentique-se com um usuário com role nurse ou manager.
  2. Faça uma requisição para:
    GET /referrals-by-category

@julianosill julianosill merged commit dd4e9b6 into dev Dec 7, 2025
2 checks passed
@julianosill julianosill deleted the feature/create-endpoint-referrals-by-category branch December 7, 2025 02:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants