J’ai juste marqué ceci comme sql-triggered-badge, mais j’ai pensé vérifier si vous cherchiez un badge automatique ou non ? Je suppose que vous n’avez peut-être pas énormément de modérateurs et que vous pourriez peut-être accorder ce badge manuellement sur la base d’une requête d’explorateur de données ?
Je pense qu’une version simplifiée de celle ci-dessus pourrait être :
-- [params]
-- int :years
WITH time_in_mod_group AS (
SELECT
user_id,
(CURRENT_DATE - created_at::date) AS days_as_mod
FROM group_users
WHERE group_id = 2 -- group id of the 'moderator' group
AND user_id > 0 -- exclude system users and bots
)
SELECT
user_id,
days_as_mod
FROM time_in_mod_group
WHERE days_as_mod > (365 * :years)
Celle-ci fonctionnerait comme une requête d’explorateur de données plutôt que comme un ensemble de badges SQL, et peut sélectionner une liste d’utilisateurs qui correspondent aux critères afin que vous puissiez leur accorder manuellement le badge.
Il y a une mise en garde : s’ils ont quitté le groupe de modérateurs à un moment donné et l’ont rejoint, cela ne compterait que la dernière inclusion. Je pense qu’il serait possible d’utiliser la table user_histories pour contourner cela, mais s’il s’agit d’une exception, il est probablement plus facile de la prendre en compte manuellement également.