Não sei nada de SQL… mas seria possível ter uma consulta que mostre os tópicos em que fui mencionado, mas nos quais não respondi após ser mencionado (imagino que essa parte seja complicada, se é que é possível)?
tópicos onde o usuário foi mencionado e não respondeu após a menção
-- [params]
-- user_id :user
WITH mentions AS (
SELECT target_topic_id, target_post_id, created_at
FROM user_actions
WHERE action_type = 7 -- menções
AND user_id = :user
), replies AS (
SELECT topic_id, MAX(created_at) created_at
FROM posts
WHERE user_id = :user
AND deleted_at IS NULL
AND post_type IN (1, 4) -- regular OU sussurro
GROUP BY topic_id
)
SELECT DATE(m.created_at) mencionado_em, target_post_id post_id
FROM mentions m
LEFT JOIN replies r ON r.topic_id = m.target_topic_id
JOIN topics t ON t.id = m.target_topic_id
WHERE m.created_at > COALESCE(r.created_at, '1900-01-01')
AND t.deleted_at IS NULL
AND NOT t.archived
AND NOT t.closed
ORDER BY m.created_at DESC