export enum Role {
  OWNER = 'OWNER',
  CTO = 'CTO',
  OPERATIONS_MANAGER = 'OPERATIONS_MANAGER',
  FINANCE_MANAGER = 'FINANCE_MANAGER',
  SUPPORT_EXECUTIVE = 'SUPPORT_EXECUTIVE',
  HARDWARE_TECHNICIAN = 'HARDWARE_TECHNICIAN',
  INSURANCE_COORDINATOR = 'INSURANCE_COORDINATOR',
  SCHOOL_PRINCIPAL = 'SCHOOL_PRINCIPAL',
  SCHOOL_TRANSPORT_ADMIN = 'SCHOOL_TRANSPORT_ADMIN',
  SCHOOL_HELPDESK = 'SCHOOL_HELPDESK',
  ROUTE_COORDINATOR = 'ROUTE_COORDINATOR',
  DRIVER = 'DRIVER',
  AUTO_DRIVER = 'AUTO_DRIVER',
  ATTENDANT = 'ATTENDANT',
  PARENT = 'PARENT',
  GUARDIAN = 'GUARDIAN',
}

export enum PortalType {
  COMPANY_SUPER_ADMIN = 'COMPANY_SUPER_ADMIN',
  SCHOOL_ADMIN = 'SCHOOL_ADMIN',
  DRIVER_APP = 'DRIVER_APP',
  PARENT_APP = 'PARENT_APP',
}

export const ROLE_PORTAL_MAP: Record<Role, PortalType> = {
  [Role.OWNER]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.CTO]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.OPERATIONS_MANAGER]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.FINANCE_MANAGER]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.SUPPORT_EXECUTIVE]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.HARDWARE_TECHNICIAN]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.INSURANCE_COORDINATOR]: PortalType.COMPANY_SUPER_ADMIN,
  [Role.SCHOOL_PRINCIPAL]: PortalType.SCHOOL_ADMIN,
  [Role.SCHOOL_TRANSPORT_ADMIN]: PortalType.SCHOOL_ADMIN,
  [Role.SCHOOL_HELPDESK]: PortalType.SCHOOL_ADMIN,
  [Role.ROUTE_COORDINATOR]: PortalType.SCHOOL_ADMIN,
  [Role.DRIVER]: PortalType.DRIVER_APP,
  [Role.AUTO_DRIVER]: PortalType.DRIVER_APP,
  [Role.ATTENDANT]: PortalType.DRIVER_APP,
  [Role.PARENT]: PortalType.PARENT_APP,
  [Role.GUARDIAN]: PortalType.PARENT_APP,
};

export const ROLE_DESCRIPTIONS: Record<Role, string> = {
  [Role.OWNER]: 'Platform owner with full system access',
  [Role.CTO]: 'Technical lead with full system access',
  [Role.OPERATIONS_MANAGER]: 'Manages schools, routes, and operations',
  [Role.FINANCE_MANAGER]: 'Manages billing, invoices, and subscriptions',
  [Role.SUPPORT_EXECUTIVE]: 'Handles support tickets and escalations',
  [Role.HARDWARE_TECHNICIAN]: 'Manages GPS devices and RFID cards',
  [Role.INSURANCE_COORDINATOR]: 'Manages insurance partner integrations',
  [Role.SCHOOL_PRINCIPAL]: 'School-level admin with full school access',
  [Role.SCHOOL_TRANSPORT_ADMIN]: 'Manages transport operations for a school',
  [Role.SCHOOL_HELPDESK]: 'School-level support desk',
  [Role.ROUTE_COORDINATOR]: 'Manages routes and stops for a school',
  [Role.DRIVER]: 'Bus driver with trip management access',
  [Role.AUTO_DRIVER]: 'Auto/van driver with trip management access',
  [Role.ATTENDANT]: 'Vehicle attendant with RFID scan access',
  [Role.PARENT]: 'Parent with child tracking and notification access',
  [Role.GUARDIAN]: 'Secondary guardian with limited access',
};
