import "server-only"; import { getDb, auditEvents } from "@/db"; import { ids } from "@/lib/ids"; import { log } from "@/lib/log"; export async function writeAudit(input: { userId?: string | null; action: string; ipAddress?: string | null; userAgent?: string | null; meta?: Record; }) { try { await getDb() .insert(auditEvents) .values({ id: ids.audit(), userId: input.userId ?? null, action: input.action, ipAddress: input.ipAddress ?? null, userAgent: input.userAgent?.slice(0, 300) ?? null, meta: input.meta ?? {}, }); } catch (e) { log.warn("audit write failed", { action: input.action, error: (e as Error).message }); } }