import { createLogger } from '../utils/logger'; const logger = createLogger('audit'); interface CreateAuditLogParams { actorId: number | null; action: string; resourceType: string; resourceId?: string | null; details?: string | null; result: 'success' | 'failure'; requestId?: string | null; } export async function createAuditLog( db: D1Database, params: CreateAuditLogParams ): Promise { try { await db .prepare( `INSERT INTO audit_logs (actor_id, action, resource_type, resource_id, details, result, request_id) VALUES (?, ?, ?, ?, ?, ?, ?)` ) .bind( params.actorId, params.action, params.resourceType, params.resourceId ?? null, params.details ?? null, params.result, params.requestId ?? null ) .run(); logger.info('Audit log created', { action: params.action, resourceType: params.resourceType, resourceId: params.resourceId, result: params.result, }); } catch (error) { logger.error('Failed to create audit log', error as Error, { action: params.action, resourceType: params.resourceType, }); } }