Temos uma configuração padrão para o sistema limpar usuários inativos. Acredito que os critérios padrão sejam algo como:
data de last_posted_at (nunca postou),
TL0
não visto por (por padrão) 2 anos
Esses critérios geralmente funcionam muito bem na limpeza da base de usuários.
Mas existe uma maneira de produzir uma lista mostrando usuários administradores que o sistema excluirá no futuro? Gostaríamos de nos comunicar com alguns usuários altamente valorizados, mas inativos, com motivos para permanecer conosco.
WITH posts_by_user AS (
SELECT COUNT(*) AS posts, user_id
FROM posts
GROUP BY user_id
)
SELECT
u.id,
u.username_lower AS "username",
u.created_at,
u.last_seen_at
FROM users u
LEFT JOIN posts_by_user pbu ON pbu.user_id = u.id
WHERE u.active = true and u.trust_level = 0
AND posts IS NULL
ORDER BY u.id
É para uma lista que mostra usuários administradores nós.
Mas o caso de uso mais amplo pode ser interessante. Usamos resumos por e-mail com bastante frequência porque alguns de nossos membros da comunidade são valiosos, mas idosos e ocupados, com pouca probabilidade de postar e menos ainda de fazer login. Mas eles estão muito familiarizados com e-mail e gostam de se manter atualizados.
Mas, de repente, após 2 anos e não conseguimos mais entrar em contato com eles.
Ah, entendi. Basicamente, eles leem por e-mail e navegam desconectados praticamente o tempo todo.
Não tenho certeza de como lidar com isso. Certamente alguém terá uma boa ideia. Uma ideia simples seria que eles postassem pelo menos 1 mensagem no fórum, embora.
Além disso, observe que os resumos são desativados para usuários que não fizeram login após 180 dias (valor padrão). O nome da configuração é suprimir e-mail de resumo após dias.
Sim, exatamente. Seria bom se eles postassem uma vez. Mas imagine alguém com pouquíssimo tempo e muito ruim com tecnologia. No entanto, muito valorizado. Os resumos são excelentes para eles e a comunidade sabe que eles pertencem e não se importa que eles não contribuam ativamente online.
Você pode alterar o nível de confiança deles e bloqueá-lo para um valor diferente de 0.
Isso os impedirá de serem selecionados pelos trabalhos de limpeza de usuários inativos.