API pour la dismissal (lecture) des notifications

Voici une tentative de description de ce que nous essayons de résoudre :

Nous avons une équipe de support de 4 membres, tous ayant défini le niveau de notification “Surveiller le premier message” pour la catégorie support. Nous souhaitons accélérer le support en incitant l’équipe à surveiller et à réagir aux notifications plus souvent et plus rapidement. Comme les membres de l’équipe ont des horaires de travail différents, de nombreux sujets sont ouverts et résolus en dehors des heures de travail d’un membre.

Exemple :

Je suis membre du support et mon poste commence à :clock1030: ; jusque-là, de nombreux sujets ont été ouverts
et résolus pendant mon absence. Je ne souhaite pas recevoir de notification pour ce type de sujet.

Nous cherchons donc un moyen d’ignorer (« désactiver la notification », révoquer, marquer automatiquement comme lu ) les notifications déclenchées par la surveillance du premier message et qui ont été résolues avant que l’utilisateur ne se connecte à Discourse.


Jusqu’à présent, nous avons trouvé de telles notifications dans la base de données en utilisant une requête comme celle-ci :

select
     notifications.user_id
    ,notifications.topic_id
    ,notifications.id
from notifications
where read=false
and notification_type=17
and topic_id in (
select
 topic_id
from topic_custom_fields
where name='accepted_answer_post_id' and value is not null
)

Nous avons réussi à ignorer la notification en mettant à jour le champ read directement dans la base de données :

update notifications
set read=true
where id=XXXXXX

Nous savons que faire des mises à jour directes dans la base de données de Discourse est une idée folle et très mauvaise.
Nous cherchons donc une sorte d’API qui nous permettrait d’appeler l’ignorance d’une notification spécifique ?

Si nous parvenons à créer un travail Sidekiq pour ignorer la notification directement via la base de données, cela constituerait-il une solution durable pour un site de production ?

Existe-t-il des plugins « bons » qui effectuent des tâches en arrière-plan via la base de données, afin que nous puissions essayer d’en recréer un pour cette tâche ?

Nous sommes plus enclins à supprimer de telles notifications, car il n’existe pas de filtre Notifications - "unread only" filter.
Discourse dispose-t-il d’un plugin « officiel » qui effectue des suppressions dans la base de données, afin que nous puissions essayer d’apprendre comment supprimer quelque chose dans la base de données via un plugin ?