import { db, sql, activityFeed } from '@project-e/db'; export interface RecordActivityParams { actor: string; action: string; entityType: string; entityId: string; changes?: Record; workspaceId: string; } /** * Record an activity feed entry and fire a pg_notify event. * Every write API route MUST call this after every INSERT/UPDATE/DELETE. */ export async function recordActivity(params: RecordActivityParams): Promise { const { actor, action, entityType, entityId, changes, workspaceId } = params; await db.insert(activityFeed).values({ actor, action, entityType, entityId, changes: changes ?? null, workspaceId, }); // Notify SSE subscribers const payload = JSON.stringify({ type: entityType, action, id: entityId, workspace_id: workspaceId }); await sql`SELECT pg_notify('project_e_events', ${payload}::text)`; }