import "server-only";
import type { Prisma } from "@prisma/client";
import { db } from "./db";
import { clientIp } from "./auth";

export async function audit(actorId: string | null, action: string, entity: string, entityId?: string | null, meta?: Prisma.InputJsonValue) {
  try {
    await db.auditLog.create({ data: { actorId, action, entity, entityId: entityId ?? null, meta, ip: await clientIp() } });
  } catch (e) {
    console.error("audit log failed", e);
  }
}
