Filtro de período no GET /events
Contexto
A listagem pública de eventos já permite retornar todos os eventos e ordenar os resultados, mas ainda não permite filtrar por período do dia (turno), como matutino, vespertino e noturno.
Objetivo
Permitir filtrar a listagem via query param no GET /events:
- period — turno do evento (
matutino, vespertino, noturno).
O parâmetro é opcional. Sem period, a listagem mantém o comportamento atual (incluindo ordenação padrão por data).
Exemplos de requisição e resposta
Query params (filtro)
| Parâmetro |
Tipo |
Obrigatório? |
Default |
Descrição |
period |
string |
Não |
- |
Filtra por turno do evento (matutino, vespertino, noturno). |
Exemplo 1 - Sem filtro de período
Requisição:
Resposta esperada (200): retorna todos os eventos, mantendo ordenação padrão atual.
Exemplo 2 - Com filtro de período
Requisição:
GET /events?period=noturno
Resposta esperada (200): retorna apenas eventos do período informado.
Exemplo 3 - Período inválido
Requisição:
GET /events?period=invalido
Resposta esperada: 400 Bad Request com mensagem de validação (ou fallback documentado em Swagger).
Comportamento esperado
- Sem period - mantém o retorno atual da listagem.
- Com period válido - retorna subset correto de eventos do turno informado.
- Com period inválido - retorna erro de validação (ou fallback documentado).
- Ordem de aplicação - aplicar filtro antes da ordenação/paginação quando coexistirem: filtrar -> ordenar -> paginar.
Tarefas
Critérios de aceite
Filtro de período no GET /events
Contexto
A listagem pública de eventos já permite retornar todos os eventos e ordenar os resultados, mas ainda não permite filtrar por período do dia (turno), como matutino, vespertino e noturno.
Objetivo
Permitir filtrar a listagem via query param no
GET /events:matutino,vespertino,noturno).O parâmetro é opcional. Sem
period, a listagem mantém o comportamento atual (incluindo ordenação padrão por data).Exemplos de requisição e resposta
Query params (filtro)
periodmatutino,vespertino,noturno).Exemplo 1 - Sem filtro de período
Requisição:
Resposta esperada (200): retorna todos os eventos, mantendo ordenação padrão atual.
Exemplo 2 - Com filtro de período
Requisição:
Resposta esperada (200): retorna apenas eventos do período informado.
Exemplo 3 - Período inválido
Requisição:
Resposta esperada: 400 Bad Request com mensagem de validação (ou fallback documentado em Swagger).
Comportamento esperado
Tarefas
period?no DTO de query de listagem, com validação dos valores permitidos (matutino,vespertino,noturno).EventsService.findAll()a lógica de filtro por período.periodnão for informado.sorteorder.period, valores aceitos e comportamento para inválidos.Critérios de aceite
GET /eventssemperiodmantém comportamento atual da listagem.GET /events?period=<valor_valido>retorna subset correto (somente eventos do turno solicitado).periodinválido gera 400 (ou fallback explicitamente documentado).periode valores suportados.