export const APP_EVENTS = {
  TRIP_CREATED: 'trip.created',
  TRIP_UPDATED: 'trip.updated',
  TRIP_DELETED: 'trip.deleted',
  TRIP_STATUS_CHANGED: 'trip.status_changed',
  PUNCH_RECORDED: 'punch.recorded',
  GPS_BATCH_PERSISTED: 'gps.batch_persisted',
  GPS_STOP_DETECTED: 'gps.stop_detected',
  TRACKING_COVERAGE_RECOMPUTE: 'tracking.coverage_recompute',
  EMPLOYEE_OFFLINE: 'employee.offline',
  EMPLOYEE_PRESENCE_CHANGED: 'employee.presence_changed',
  NOTIFICATION_SEND: 'notification.send',
  ANALYTICS_RECALCULATE: 'analytics.recalculate',
} as const;

export const SOCKET_EVENTS = {
  JOIN_TRIP: 'join:trip',
  LEAVE_TRIP: 'leave:trip',
  GPS_BATCH: 'gps:batch',
  GPS_UPDATE: 'gps:update',
  TRIP_UPDATE: 'trip:update',
  PRESENCE_UPDATE: 'presence:update',
  LIVE_MAP: 'live:map',
  SUBSCRIBE_LIVE: 'subscribe:live',
  UNSUBSCRIBE_LIVE: 'unsubscribe:live',
} as const;

export const SOCKET_NAMESPACES = {
  ADMIN: '/admin',
  HOD: '/hod',
  EMPLOYEE: '/employee',
  TRACKING: '/tracking',
} as const;

/** Real-time live trip tracking (Flutter driver + admin/manager viewer). */
export const TRACKING_SOCKET_EVENTS = {
  JOIN: 'tracking.join',
  LEAVE: 'tracking.leave',
  LOCATION_UPDATE: 'tracking.location.update',
  LOCATION_UPDATED: 'trip.location.updated',
  TRACKING_STATUS: 'trip.tracking.status',
} as const;

export const QUEUE_NAMES = {
  GPS: 'gps-processing',
  NOTIFICATIONS: 'notifications',
  ANALYTICS: 'analytics',
} as const;
