API para descartar (leer) notificaciones

Aquí está un intento de descripción de lo que estamos tratando de resolver:

Tenemos un equipo de soporte de 4 miembros, todos los cuales tienen configurado el nivel de notificación “Observando el primer mensaje” para la categoría de soporte. Queremos acelerar el equipo de soporte incentivándolos a observar y reaccionar a las notificaciones con más frecuencia y rapidez. Dado que los miembros del equipo tienen horarios de trabajo diferentes, muchos temas se abren y resuelven durante las horas en que algunos miembros no están trabajando.

Ejemplo:

Soy un miembro del equipo de soporte y mi turno comienza a las :clock1030:; hasta entonces, hay muchos temas abiertos
y resueltos mientras estoy fuera. No quiero recibir notificaciones sobre ese tipo de temas.

Por lo tanto, estamos buscando una forma de descartar (“des-notificar”, revocar, marcar como leído automáticamente) las notificaciones que se activan por “Observar el primer mensaje” y que ya han sido resueltas antes de que el usuario acceda a Discourse.


Hasta ahora, hemos encontrado notificaciones como estas en la base de datos usando una consulta similar a esta:

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
)

Logramos descartar la notificación actualizando el campo read directamente en la base de datos:

update notifications
set read=true
where id=XXXXXX

Sabemos que realizar actualizaciones directas en la base de datos de Discourse es una idea terrible y muy mala.
Por lo tanto, estamos buscando algún tipo de API que nos permita llamar a una función para descartar una notificación específica.

Si logramos crear un trabajo de Sidekiq para descartar notificaciones directamente en la base de datos, ¿sería esa una solución sostenible para un sitio de producción?

¿Existe algún plugin “bueno” que realice trabajos en segundo plano sobre la base de datos para que podamos intentar recrear uno con estas tareas?

Es más probable que eliminen notificaciones como estas, ya que no existe Notifications - "unread only" filter

¿Tiene Discourse algún plugin “oficial” que realice eliminaciones dentro de la base de datos para que podamos intentar aprender cómo eliminar algo en la base de datos a través de un plugin?