Estatísticas no GET /events/stats
Contexto
Hoje as estatísticas de eventos estão centralizadas no front-end. Isso faz com que a regra de contagem fique duplicada fora da API e dificulta manter uma fonte única de verdade para indicadores.
Objetivo
Centralizar as estatísticas de eventos no backend por meio de um novo endpoint GET /events/stats.
A resposta deve retornar os contadores abaixo, seguindo a mesma regra já usada no front-end:
total — total de eventos.
noturno — quantidade de eventos com period === 'noturno'.
matutino — quantidade de eventos com period === 'matutino'.
vespertino — quantidade de eventos com period === 'vespertino'.
Exemplos de requisição e resposta
Exemplo 1 — Buscar estatísticas gerais de eventos
Requisição:
Resposta esperada (200):
{
"total": 10,
"noturno": 4,
"matutino": 3,
"vespertino": 3
}
Regras de contagem
total deve considerar todos os eventos retornáveis pela regra atual do backend.
noturno deve contar apenas eventos com period exatamente igual a noturno.
matutino deve contar apenas eventos com period exatamente igual a matutino.
vespertino deve contar apenas eventos com period exatamente igual a vespertino.
- Se não houver eventos cadastrados, a resposta deve retornar todos os contadores com valor
0.
Tarefas
Critérios de aceite
Dependências
Estatísticas no GET /events/stats
Contexto
Hoje as estatísticas de eventos estão centralizadas no front-end. Isso faz com que a regra de contagem fique duplicada fora da API e dificulta manter uma fonte única de verdade para indicadores.
Objetivo
Centralizar as estatísticas de eventos no backend por meio de um novo endpoint
GET /events/stats.A resposta deve retornar os contadores abaixo, seguindo a mesma regra já usada no front-end:
total— total de eventos.noturno— quantidade de eventos comperiod === 'noturno'.matutino— quantidade de eventos comperiod === 'matutino'.vespertino— quantidade de eventos comperiod === 'vespertino'.Exemplos de requisição e resposta
Exemplo 1 — Buscar estatísticas gerais de eventos
Requisição:
Resposta esperada (200):
{ "total": 10, "noturno": 4, "matutino": 3, "vespertino": 3 }Regras de contagem
totaldeve considerar todos os eventos retornáveis pela regra atual do backend.noturnodeve contar apenas eventos comperiodexatamente igual anoturno.matutinodeve contar apenas eventos comperiodexatamente igual amatutino.vespertinodeve contar apenas eventos comperiodexatamente igual avespertino.0.Tarefas
GET /events/stats.noturnouse a regraperiod === 'noturno'.matutinouse a regraperiod === 'matutino'.vespertinouse a regraperiod === 'vespertino'.{ total, noturno, matutino, vespertino }.Critérios de aceite
GET /events/statsresponde com status200.{ total, noturno, matutino, vespertino }.noturnoconta corretamente eventos comperiod === 'noturno'.matutinoconta corretamente eventos comperiod === 'matutino'.vespertinoconta corretamente eventos comperiod === 'vespertino'.{ total: 0, noturno: 0, matutino: 0, vespertino: 0 }.Dependências