Número de días antes de que se elimine un usuario inactivo (nivel de confianza 0 sin publicaciones). Para deshabilitar la limpieza, establécelo en 0.
¿Puede confirmar que estos son los criterios (TL0 y 0 publicaciones)? ¿Se tiene en cuenta cuándo iniciaron sesión por última vez y/o leyeron una publicación, o el número de días comienza desde el registro?
¿Existe una consulta de explorador de datos para mostrar usuarios TL0 que tienen 0 publicaciones junto con el número de días relevante? Esto sería para dar una idea del efecto de elegir números específicos para esta configuración. Gracias.
Hay algunos criterios adicionales: los administradores y moderadores no se eliminan
También se comprueban la fecha de último acceso y la fecha de registro.
Creo que algo como esto debería devolver el número de usuarios que serían eliminados
-- [params]
-- int :active_days_ago
SELECT COUNT(*)
FROM users
WHERE last_posted_at IS NULL
AND trust_level = 0
AND admin = false
AND moderator = false
AND created_at < CURRENT_DATE - :active_days_ago
AND (last_seen_at < CURRENT_DATE - :active_days_ago OR last_seen_at IS NULL)
AND NOT EXISTS (
SELECT 1 FROM posts WHERE posts.user_id = users.id
)
AND NOT EXISTS (
SELECT 1 FROM topics WHERE topics.user_id = users.id
)
Para ver qué usuarios serían eliminados, esto debería funcionar
-- [params]
-- int :active_days_ago
SELECT
id as user_id,
DATE_PART('day', CURRENT_DATE - created_at) AS days_since_created,
DATE_PART('day', CURRENT_DATE - last_seen_at) AS days_since_seen
FROM users
WHERE last_posted_at IS NULL
AND trust_level = 0
AND admin = false
AND moderator = false
AND created_at < CURRENT_DATE - :active_days_ago
AND (last_seen_at < CURRENT_DATE - :active_days_ago OR last_seen_at IS NULL)
AND NOT EXISTS (
SELECT 1 FROM posts WHERE posts.user_id = users.id
)
AND NOT EXISTS (
SELECT 1 FROM topics WHERE topics.user_id = users.id
)
ORDER BY days_since_seen