import { db } from '@/lib/db' /** * Ereignisse an alle offenen Ansichten schicken. * * Über `pg_notify`, nicht über einen prozessinternen Verteiler: dann stimmt es * auch, wenn später ein zweiter Web-Prozess dazukommt, und es braucht keinen * zusätzlichen Dienst. Siehe docs/06-chat-und-realtime.md. */ export const ATTACHMENT_CHANNEL = 'attachment_scanned' export async function notifyAttachmentScanned(attachmentId: string): Promise { try { // Der Kanalname ist eine Konstante, nur die Nutzlast kommt von aussen — // und die ist eine Kennung aus der Datenbank. await db.$executeRaw`SELECT pg_notify(${ATTACHMENT_CHANNEL}, ${attachmentId})` } catch (error) { // Ein verlorenes Ereignis kostet eine Aktualisierung von Hand, mehr nicht. console.error('[realtime] Ereignis nicht zugestellt', error) } }