// src/shared/constants/roles.ts
// Role constants for RBAC (Role-Based Access Control)

/**
 * User roles constant for RBAC
 */
export const USER_ROLES = {
  ADMIN: 'ADMIN',
  MANAGER: 'MANAGER',
  MAID: 'MAID',
  VIEWER: 'VIEWER',
  GOD: 'GOD',
} as const;

/**
 * Type for user role
 */
export type UserRole = typeof USER_ROLES[keyof typeof USER_ROLES];

/**
 * Array of all user roles
 */
export const ALL_ROLES: UserRole[] = Object.values(USER_ROLES);

/**
 * Check if a value is a valid user role
 */
export function isValidRole(role: string): role is UserRole {
  return ALL_ROLES.includes(role as UserRole);
}
