Количество дней до удаления неактивного пользователя (уровень доверия 0 без каких-либо публикаций). Чтобы отключить очистку, установите значение 0.
Можете ли вы подтвердить, что критериями являются именно уровень доверия 0 и отсутствие публикаций? Учитывается ли дата последнего входа в систему и/или прочтения публикации, или отсчёт дней начинается с момента регистрации?
Существует ли запрос в Data Explorer, который показывает пользователей с уровнем доверия 0 и нулём публикаций вместе с соответствующим количеством дней? Это помогло бы оценить эффект от выбора конкретных значений для этой настройки. Спасибо.
Существуют дополнительные критерии: администраторы и модераторы не удаляются. Также проверяются дата последнего посещения и дата регистрации.
По-моему, что-то вроде этого должно возвращать количество пользователей, которые будут удалены:
-- [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
)
Чтобы увидеть, какие пользователи будут удалены, подойдёт следующий запрос:
-- [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