// app/lib/eventBus.ts
import { EventEmitter } from 'events';

// Create a singleton event emitter
const eventEmitter = new EventEmitter();

// Export the event bus
export const eventBus = {
  emit: (event: string, data: any) => eventEmitter.emit(event, data),
  on: (event: string, callback: (...args: any[]) => void) => eventEmitter.on(event, callback),
  off: (event: string, callback: (...args: any[]) => void) => eventEmitter.off(event, callback),
};

// Define event types for better type safety
export const EVENTS = {
  TICKET_CREATED: 'ticket:created',
  PRODUCT_BOUGHT: 'product:buy',
};