/**
 * publishRealtimeEvent — fire-and-forget helper for publishing real-time events
 * to the `zync-realtime` Cloudflare Queue.
 *
 * Stamps `id` (crypto.randomUUID()) and `timestamp` (ISO 8601) on each event.
 * Never mutates the caller's object.
 *
 * Usage (fire-and-forget in route handlers):
 *   ctx.waitUntil(publishRealtimeEvent(env.REALTIME_QUEUE, { type, tenantId, payload }))
 */
import type { RealtimeEvent } from './types'

export async function publishRealtimeEvent(
  queue: Queue,
  event: Omit<RealtimeEvent, 'id' | 'timestamp'>,
): Promise<void> {
  await queue.send({
    ...event,
    id: crypto.randomUUID(),
    timestamp: new Date().toISOString(),
  })
}
