import { UserRole } from './enums';



export {

  UserRole,

  UserStatus,

  TripStatus,

  PunchType,

} from './enums';



export const ADMIN_ROLES: UserRole[] = [

  UserRole.SUPER_ADMIN,

  UserRole.ADMIN,

];



/** Full management: analytics, exports, user list, etc. */

export const MANAGEMENT_ROLES: UserRole[] = [

  UserRole.SUPER_ADMIN,

  UserRole.ADMIN,

  UserRole.HOD,

  UserRole.REPORTING_MANAGER,

];



/** Live map, trip read, route replay — includes field managers (no user CRUD). */

export const OPERATIONS_ROLES: UserRole[] = [

  ...MANAGEMENT_ROLES,

  UserRole.MANAGER,

];



export function isAdminRole(role: UserRole): boolean {

  return ADMIN_ROLES.includes(role);

}



export function isManagementRole(role: UserRole): boolean {

  return MANAGEMENT_ROLES.includes(role);

}



export function isOperationsRole(role: UserRole): boolean {

  return OPERATIONS_ROLES.includes(role);

}



export function roleRank(role: UserRole): number {

  const ranks: Record<UserRole, number> = {

    [UserRole.SUPER_ADMIN]: 5,

    [UserRole.ADMIN]: 4,

    [UserRole.HOD]: 3,

    [UserRole.MANAGER]: 2,

    [UserRole.REPORTING_MANAGER]: 2,

    [UserRole.EMPLOYEE]: 1,

  };

  return ranks[role];

}


