Encourager les MP du drapeau 'Notifier les utilisateurs'

Nous souhaitons encourager les utilisateurs à envoyer davantage de messages privés concernant des retours personnels ou sensibles sur des publications (et ce, de manière courtoise et amicale..), plutôt que de les publier publiquement et de risquer de dévier la conversation du sujet principal. Voici le badge :

La requête :

SELECT p.user_id, current_timestamp AS granted_at
FROM posts AS p
JOIN topics t on t.id = p.topic_id
WHERE t.archetype = 'private_message'
AND t.title LIKE 'Votre publication dans "%"'
AND p.post_number = 1
AND p.like_count >= 1
AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY p.user_id
HAVING count(*) >= 1

Je n’ai pas trouvé de déclencheur spécifique pour signaler les messages, c’est pourquoi la requête utilise le titre par défaut « Votre publication dans … ». Je dirais que ce badge peut facilement être exploité ou falsifié de plusieurs manières, mais il atteindrait tout de même son objectif en offrant une plus grande visibilité à cette fonctionnalité et en communiquant qu’il s’agit d’une action positive pour la communauté.

3 « J'aime »

Est-ce que celui-ci pourrait être basé sur la post_action pour ‘Notify User’ ?

Quelque chose comme :

SELECT pa.user_id, current_timestamp AS granted_at
FROM post_actions pa
  JOIN posts p ON p.id = pa.related_post_id
WHERE pa.post_action_type_id = 6
  AND p.like_count >= 1
  AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY pa.user_id
HAVING COUNT(*) >= 1

En fait, je pense que cela lie le message sur lequel le drapeau était basé, pas le PM. Il faudra peut-être une petite modification.

Un petit changement dans la jointure pour faire p.id = pa.related_post_id fait l’affaire, je pense. :+1:

Je pense que le HAVING n’est nécessaire que si vous voulez accorder une version Argent et Or de plus d’un.

3 « J'aime »