Correção de N+1 em meetings

TLDR: Inclui user_profile no includes da query de meetings, eliminando o N+1 gerado pelo MeetingSerializer.

Contexto

O MeetingSerializer acessa participant.user.user_profile.slug para cada participante. A query Meetings::ByUserQuery já faz includes(meeting_participants: :user) mas não inclui user_profile. Isso gera uma query extra por participante por meeting — um N+1 claro, que se multiplica em endpoints de listagem como /closest_meetings e /latest_meetings.

Objetivos

  • Eliminar o N+1 no carregamento de user_profile dos participantes de meetings

Fora de escopo

— (não registrado na spec original)

Mudanças

  • app/queries/meetings/by_user_query.rb: alterar includes(meeting_participants: :user) para includes(meeting_participants: { user: :user_profile })

Como verificar

  • Rodar os testes existentes de meetings
  • Confirmar via logs do Rails (gem bullet ou contagem de queries) que não há queries extras por participante

Documentação

Nenhuma mudança de documentação necessária.