export enum UserRole {
  SUPER_ADMIN = 'SUPER_ADMIN',
  ADMIN = 'ADMIN',
  HOD = 'HOD',
  MANAGER = 'MANAGER',
  REPORTING_MANAGER = 'REPORTING_MANAGER',
  EMPLOYEE = 'EMPLOYEE',
}

export enum UserStatus {
  ACTIVE = 'ACTIVE',
  INACTIVE = 'INACTIVE',
}

export enum TripStatus {
  CREATED = 'CREATED',
  STARTED = 'STARTED',
  TRAVELLING = 'TRAVELLING',
  ARRIVED = 'ARRIVED',
  MEETING_STARTED = 'MEETING_STARTED',
  MEETING_COMPLETED = 'MEETING_COMPLETED',
  RETURN_TRIP = 'RETURN_TRIP',
  COMPLETED = 'COMPLETED',
  CANCELLED = 'CANCELLED',
}

export enum PunchType {
  DEPARTURE = 'DEPARTURE',
  ARRIVAL = 'ARRIVAL',
  MEETING_START = 'MEETING_START',
  MEETING_END = 'MEETING_END',
}

export enum VehicleType {
  CAR = 'CAR',
  BIKE = 'BIKE',
  SCOOTER = 'SCOOTER',
  OTHER = 'OTHER',
}

export enum FuelType {
  PETROL = 'PETROL',
  DIESEL = 'DIESEL',
  CNG = 'CNG',
  ELECTRIC = 'ELECTRIC',
  OTHER = 'OTHER',
}

export enum LeadType {
  HOT = 'HOT',
  WARM = 'WARM',
  COLD = 'COLD',
  EXISTING = 'EXISTING',
  OTHER = 'OTHER',
}

export enum NotificationType {
  TRIP_STARTED = 'TRIP_STARTED',
  ARRIVAL_COMPLETED = 'ARRIVAL_COMPLETED',
  MEETING_STARTED = 'MEETING_STARTED',
  MEETING_ENDED = 'MEETING_ENDED',
  EMPLOYEE_OFFLINE = 'EMPLOYEE_OFFLINE',
  GPS_STOPPED = 'GPS_STOPPED',
}

export enum EmployeePresence {
  ONLINE = 'ONLINE',
  OFFLINE = 'OFFLINE',
  ON_TRIP = 'ON_TRIP',
  IN_MEETING = 'IN_MEETING',
  IDLE = 'IDLE',
}

/** Client-reported GPS session lifecycle events (batch upload). */
export enum TrackingEventType {
  TRACKING_STARTED = 'tracking_started',
  TRACKING_STOPPED = 'tracking_stopped',
  APP_BACKGROUND = 'app_background',
  APP_FOREGROUND = 'app_foreground',
  PERMISSION_DENIED = 'permission_denied',
  OS_KILL_SUSPECTED = 'os_kill_suspected',
  NETWORK_OFFLINE = 'network_offline',
  NETWORK_ONLINE = 'network_online',
}
