import { randomUUID } from 'crypto'; const pending = new Map(); function ts() { return new Date().toLocaleTimeString(); } export function enqueue(action, params, submitted_by) { const id = randomUUID(); const entry = { id, action, params, submitted_by, status: 'pending', created_at: new Date().toISOString(), }; pending.set(id, entry); console.log(`[${ts()}] [QUEUE] ${submitted_by} requested '${action}' (${id.slice(0, 8)}) — params: ${JSON.stringify(params)}`); return id; } export function get_entry(id) { return pending.get(id) ?? null; } export function list_pending() { return [...pending.values()].filter((e) => e.status === 'pending'); } export function resolve(id, decision) { const entry = pending.get(id); if (!entry) { return null; } entry.status = decision; // 'approved' | 'denied' entry.resolved_at = new Date().toISOString(); console.log(`[${ts()}] [QUEUE] ${id.slice(0, 8)} ${decision} by ${entry.resolved_by ?? 'unknown'}`); return entry; }