import type { PrismaClient } from '@afis/db' export type HeartbeatStatus = 'up' | 'degraded' | 'down' /** * Der Worker schreibt sein Lebenszeichen in die Datenbank, damit /api/health im * Web-Container den Gateway-Zustand kennt, ohne selbst mit Discord zu sprechen. * Siehe docs/11-betrieb.md. */ export async function writeHeartbeat( db: PrismaClient, status: HeartbeatStatus, detail?: string, ): Promise { await db.serviceHeartbeat.upsert({ where: { service: 'worker' }, create: { service: 'worker', status, detail: detail ?? null }, update: { status, detail: detail ?? null, at: new Date() }, }) }