// js/types/EventTypes.js

/**
 * Calendar event type constants
 */
export const EventTypes = {
  // View events
  VIEW_CHANGE: 'calendar:viewchange',
  VIEW_RENDERED: 'calendar:viewrendered',
  PERIOD_CHANGE: 'calendar:periodchange',
  
  // Event CRUD
  EVENT_CREATE: 'calendar:eventcreate',
  EVENT_UPDATE: 'calendar:eventupdate',
  EVENT_DELETE: 'calendar:eventdelete',
  EVENT_RENDERED: 'calendar:eventrendered',
  EVENT_SELECTED: 'calendar:eventselected',
  
  // Interaction events
  DRAG_START: 'calendar:dragstart',
  DRAG_MOVE: 'calendar:dragmove',
  DRAG_END: 'calendar:dragend',
  DRAG_CANCEL: 'calendar:dragcancel',
  
  RESIZE_START: 'calendar:resizestart',
  RESIZE_MOVE: 'calendar:resizemove',
  RESIZE_END: 'calendar:resizeend',
  RESIZE_CANCEL: 'calendar:resizecancel',
  
  // UI events
  POPUP_SHOW: 'calendar:popupshow',
  POPUP_HIDE: 'calendar:popuphide',
  
  SEARCH_START: 'calendar:searchstart',
  SEARCH_UPDATE: 'calendar:searchupdate',
  SEARCH_CLEAR: 'calendar:searchclear',
  
  // Grid events
  GRID_CLICK: 'calendar:gridclick',
  GRID_DBLCLICK: 'calendar:griddblclick',
  GRID_RENDERED: 'calendar:gridrendered',
  
  // Data events
  DATA_FETCH_START: 'calendar:datafetchstart',
  DATA_FETCH_SUCCESS: 'calendar:datafetchsuccess',
  DATA_FETCH_ERROR: 'calendar:datafetcherror',
  DATA_SYNC_START: 'calendar:datasyncstart',
  DATA_SYNC_SUCCESS: 'calendar:datasyncsuccess',
  DATA_SYNC_ERROR: 'calendar:datasyncerror',
  
  // State events
  STATE_UPDATE: 'calendar:stateupdate',
  CONFIG_UPDATE: 'calendar:configupdate',
  
  // Time events
  TIME_UPDATE: 'calendar:timeupdate',
  
  // Navigation events
  NAV_PREV: 'calendar:navprev',
  NAV_NEXT: 'calendar:navnext',
  NAV_TODAY: 'calendar:navtoday',
  
  // Loading events
  LOADING_START: 'calendar:loadingstart',
  LOADING_END: 'calendar:loadingend',
  
  // Error events
  ERROR: 'calendar:error',
  
  // Init events
  READY: 'calendar:ready',
  DESTROY: 'calendar:destroy'
};