import type { Db } from "@paperclip/db"; import { activityLog } from "@paperclip/db"; import { publishLiveEvent } from "./live-events.js"; export interface LogActivityInput { companyId: string; actorType: "agent" | "user" | "system"; actorId: string; action: string; entityType: string; entityId: string; agentId?: string | null; details?: Record | null; } export async function logActivity(db: Db, input: LogActivityInput) { await db.insert(activityLog).values({ companyId: input.companyId, actorType: input.actorType, actorId: input.actorId, action: input.action, entityType: input.entityType, entityId: input.entityId, agentId: input.agentId ?? null, details: input.details ?? null, }); publishLiveEvent({ companyId: input.companyId, type: "activity.logged", payload: { actorType: input.actorType, actorId: input.actorId, action: input.action, entityType: input.entityType, entityId: input.entityId, agentId: input.agentId ?? null, details: input.details ?? null, }, }); }