Автоматическое истечение срока действия бейджа

Я хотел бы предоставлять бонусы пользователям Discourse, которые периодически проявляют активность. Например, я хочу давать бонусы только тем пользователям, которые приглашают как минимум одного нового пользователя в месяц.

Я мог бы настроить это, объявив, что все пользователи с бейджем «Промоутер» получают такие бонусы. Однако бейдж «Промоутер» присваивается после приглашения всего одного посетителя, и пользователь сохраняет его навсегда.

Существует ли способ настроить автоматическое истечение срока действия бейджа, чтобы через месяц бейдж «Промоутер» (или любой другой) снимался с пользователя, заставляя его снова заслужить его?

Или есть ли более подходящий подход к решению моей задачи (требование ежемесячной активности от пользователей)?

Заранее спасибо.

Определённо интересная идея.

@codinghorror, значит, такой функции пока нет? :slight_smile:
Существует ли какой-либо обходной путь для реализации этого, даже если вручную? Основная проблема, которую я сейчас вижу, заключается в том, что я не могу увидеть даже информацию о том, когда пользователю была выдана значок. Доступна ли эта информация где-либо, даже через API?

Думаю, можно использовать Discourse Data Explorer, чтобы воспроизводить SQL-запросы и добавлять ограничения по времени для создания новых «исчезающих» бейджей. Я не проверял категорию #plugin:data-explorer или коллекцию (Superseded) What cool data explorer queries have you come up with?, есть ли там уже такие запросы. Было бы очень здорово, если бы вы поделились результатами в этой теме!

Под тремя строками рядом с вашим аватаром нажмите «Значки». У каждого значка есть число… показывающее, у скольких пользователей он есть. Нажмите на это число. Затем будет показан список всех пользователей с этим значком и дата, когда они его получили.

Но зачем вообще нужны значки с истекающим сроком действия? Пользователи, на мой взгляд, будут раздражены.

Это действительно частый запрос в пространстве комьюнити. Речь идет о бейджах, привязанных к более недавним или текущим действиям пользователей, в отличие от исторического награждения бейджами, которые остаются у вас навсегда, независимо от того, активны ли вы в комьюнити или нет. Это особенно актуально для комьюнити, которые существуют уже несколько лет. Facebook делает это с бейджем «Топ-фанат», который не является статичным и может быть утерян, если вы перестанете участвовать на странице.

Если я просто вручную удалю значок у пользователя, получит ли он этот значок снова, если выполнит необходимые действия?

В этом случае, я думаю, совет всё ещё заключается в том, чтобы создавать новые значки, в которые уже встроен временной элемент в базовый SQL-запрос.

Если кому-то нужна помощь с запросом, вы можете создать тему в канале #data-reporting. :+1: