Usando reacciones para otorgar insignias

¡Gracias, eso ayudó! Probablemente deberíamos mover esto a un nuevo tema ya que estamos desviándonos. Pero aquí está la consulta que se me ocurrió (con la ayuda de ChatGPT) que simplemente devuelve a los usuarios que dieron/recibieron la reacción, cuántas reacciones, la fecha de la reacción y la URL de la publicación específica. Lo único que no pude hacer fue hacer que la URL de la publicación fuera enlazable, parece que eso está limitado a las URL de los temas.

WITH reaction_pairs AS (
    SELECT 
      p.user_id AS received_reaction_user_id, 
      dru.user_id AS gave_reaction_user_id, 
      dr.post_id,
      t.id AS topic_id,
      t.slug AS topic_slug,
      p.post_number,
      dru.created_at AS reaction_date
    FROM 
      discourse_reactions_reactions dr
      JOIN discourse_reactions_reaction_users dru ON dr.id = dru.reaction_id
      JOIN posts p ON dr.post_id = p.id
      JOIN topics t ON p.topic_id = t.id
    WHERE 
      dr.reaction_value = 'Your_Specific_Reaction_Here'
)
SELECT 
  ur1.id AS user_id, 
  ur2.username AS "Usuario que dio la reacción",
  'Your_Community_URL' || 't/' || rp.topic_slug || '/' || rp.topic_id || '/' || rp.post_number AS "URL de la publicación",
  rp.reaction_date AS "Fecha de la reacción",
  COUNT(*) AS "Número de reacciones"
FROM 
  reaction_pairs rp
  JOIN users ur1 ON rp.received_reaction_user_id = ur1.id
  JOIN users ur2 ON rp.gave_reaction_user_id = ur2.id
GROUP BY 
  ur1.id, 
  ur2.username, 
  rp.topic_slug, 
  rp.topic_id, 
  rp.post_number, 
  rp.reaction_date
ORDER BY 
  "Número de reacciones" DESC, "Fecha de la reacción" DESC