Acabei de marcar isto como sql-triggered-badge, mas pensei em verificar se você está procurando um automático ou não? Presumo que você pode não ter uma grande quantidade de mods e poderia talvez conceder este distintivo manualmente com base em uma consulta do explorador de dados?
Acho que uma versão simplificada da acima poderia ser:
-- [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)
Este funcionaria como uma consulta do explorador de dados em vez de um conjunto de distintivos SQL, e pode selecionar uma lista de usuários que se encaixam nos critérios para que você possa conceder manualmente o distintivo a eles.
Há uma ressalva de que se eles saírem do grupo de mod a qualquer momento e voltarem a entrar, isso só contaria a inclusão mais recente. Acho que seria possível usar a tabela user_histories para contornar isso, mas se for uma exceção, é provável que seja mais fácil contabilizá-la manualmente também.