find Latest Messages By Tenant
@Query(value = "
SELECT * FROM flow_messages m
WHERE m.id IN (
SELECT id FROM (
SELECT id,
ROW_NUMBER() OVER (PARTITION BY contact_id ORDER BY created_at DESC) as rn
FROM flow_messages
WHERE tenant_id = :tenantId
) t WHERE t.rn = 1
)
ORDER BY m.created_at DESC
", nativeQuery = true )
Busca a última mensagem de cada contato do Tenant. Essa query usa Window Function (ROW_NUMBER) para performance extrema no PostgreSQL. Retorna apenas a mensagem mais recente de cada contact_id.