/**
 * CoreEvents - Consolidated essential events for the calendar
 */
export const CoreEvents = {
  // Lifecycle events
  INITIALIZED: 'core:initialized',
  READY: 'core:ready',
  DESTROYED: 'core:destroyed',

  // View events
  VIEW_CHANGED: 'view:changed',
  VIEW_RENDERED: 'view:rendered',

  // Navigation events
  DATE_CHANGED: 'nav:date-changed',
  NAVIGATION_COMPLETED: 'nav:navigation-completed',

  // Data events
  DATA_LOADING: 'data:loading',
  DATA_LOADED: 'data:loaded',
  DATA_ERROR: 'data:error',

  // Grid events
  GRID_RENDERED: 'grid:rendered',
  GRID_CLICKED: 'grid:clicked',

  // Event management
  EVENT_CREATED: 'event:created',
  EVENT_UPDATED: 'event:updated',
  EVENT_DELETED: 'event:deleted',
  EVENT_SELECTED: 'event:selected',

  // Event drag-drop
  EVENT_DRAG_START: 'event:drag-start',
  EVENT_DRAG_MOVE: 'event:drag-move',
  EVENT_DRAG_END: 'event:drag-end',
  EVENT_DRAG_CANCEL: 'event:drag-cancel',
  EVENT_DRAG_COLUMN_CHANGE: 'event:drag-column-change',

  // Header drag (timed → header conversion)
  EVENT_DRAG_ENTER_HEADER: 'event:drag-enter-header',
  EVENT_DRAG_MOVE_HEADER: 'event:drag-move-header',
  EVENT_DRAG_LEAVE_HEADER: 'event:drag-leave-header',

  // Event resize
  EVENT_RESIZE_START: 'event:resize-start',
  EVENT_RESIZE_END: 'event:resize-end',

  // Edge scroll
  EDGE_SCROLL_TICK: 'edge-scroll:tick',
  EDGE_SCROLL_STARTED: 'edge-scroll:started',
  EDGE_SCROLL_STOPPED: 'edge-scroll:stopped',

  // System events
  ERROR: 'system:error',

  // Sync events
  SYNC_STARTED: 'sync:started',
  SYNC_COMPLETED: 'sync:completed',
  SYNC_FAILED: 'sync:failed',

  // Entity events - for audit and sync
  ENTITY_SAVED: 'entity:saved',
  ENTITY_DELETED: 'entity:deleted',

  // Audit events
  AUDIT_LOGGED: 'audit:logged',

  // Rendering events
  EVENTS_RENDERED: 'events:rendered'
} as const;
