Creo que esto también.
Pero Sam insiste en que es algo real:
No parece que haya ninguna insignia para esto todavía.
Si tienes criterios específicos de insignias para las que te gustaría crear, deberías abrir un tema de Data & reporting para cada una. ![]()
Creo que un par de ejemplos podrían ser del tipo:
Obtener 10 votos en una respuesta de votación de publicación
SELECT p.user_id, p.created_at AS granted_at, p.id AS post_id
FROM post_voting_votes pvv
JOIN posts p ON p.id = pvv.votable_id
WHERE pvv.direction = 'up'
AND p.post_number <> 1
AND (:backfill OR p.id IN (:post_ids))
GROUP BY p.user_id, p.id
HAVING COUNT(*) >=10
O una un poco más matizada donde se tengan en cuenta los votos ‘a favor - en contra’:
WITH vote_totals AS (
SELECT
p.user_id,
p.id AS post_id,
p.created_at AS granted_at,
(COUNT(*) FILTER (WHERE pvv.direction = 'up') - COUNT(*) FILTER (WHERE pvv.direction = 'down')) AS total
FROM post_voting_votes pvv
JOIN posts p ON p.id = pvv.votable_id
WHERE p.post_number <> 1
GROUP BY 1, 2
)
SELECT *
FROM vote_totals
WHERE total >= 10
AND (:backfill OR post_id IN (:post_ids))
Estas necesitarán más pruebas para asegurarnos de que funcionan según lo previsto. ![]()
Sin embargo, una cosa a considerar es que el total es dinámico, por lo que un ‘10’ de hoy podría convertirse en un ‘5’ mañana si se agregan más votos negativos (para el segundo ejemplo). Y si la insignia se basa solo en votos a favor, como en el primer ejemplo, es posible que hayas obtenido 10, pero la interfaz de usuario solo muestra 5 cuando se suman los votos negativos.