import { Ionicons } from '@expo/vector-icons';

export type NavIconName = keyof typeof iconMap;

const iconMap = {
  dashboard: 'grid-outline',
  calendar: 'calendar-outline',
  consultations: 'medkit-outline',
  ai: 'sparkles-outline',
  customers: 'people-outline',
  patients: 'body-outline',
  staff: 'id-card-outline',
  services: 'cube-outline',
  diagnoses: 'document-text-outline',
  prescriptions: 'flask-outline',
  payments: 'card-outline',
  reports: 'bar-chart-outline',
  settings: 'settings-outline',
  branches: 'business-outline',
  widget: 'code-slash-outline',
  notifications: 'notifications-outline',
  help: 'help-circle-outline',
  accounts: 'briefcase-outline',
  roles: 'shield-outline',
  users: 'person-outline',
  features: 'toggle-outline',
  backup: 'cloud-upload-outline',
  documentation: 'book-outline',
  blog: 'newspaper-outline',
  faq: 'chatbubble-ellipses-outline',
  home: 'home-outline',
  login: 'log-in-outline',
  register: 'person-add-outline',
  contact: 'mail-outline',
  legal: 'document-outline',
  partners: 'people-circle-outline',
  pos: 'cart-outline',
  profile: 'person-circle-outline',
  logout: 'log-out-outline',
  add: 'add-circle-outline',
  edit: 'create-outline',
  delete: 'trash-outline',
  search: 'search-outline',
  back: 'arrow-back-outline',
  menu: 'menu-outline',
  close: 'close-outline',
  check: 'checkmark-circle-outline',
  refresh: 'refresh-outline',
  download: 'download-outline',
  forward: 'arrow-forward-outline',
  remove: 'remove-outline',
  cart: 'cart-outline',
  payment: 'wallet-outline',
  invoice: 'receipt-outline',
  inventory: 'cube-outline',
  ticket: 'ticket-outline',
  booking: 'calendar-outline',
  tune: 'options-outline',
  save: 'save-outline',
  cancel: 'close-circle-outline',
  lock: 'lock-closed-outline',
  unlock: 'lock-open-outline',
  share: 'share-outline',
  copy: 'copy-outline',
  medication: 'medkit-outline',
  return: 'return-down-back-outline',
} as const;

export function navIcon(name: string): keyof typeof Ionicons.glyphMap {
  const mapped = iconMap[name as NavIconName] || 'ellipse-outline';
  return mapped in Ionicons.glyphMap
    ? (mapped as keyof typeof Ionicons.glyphMap)
    : 'ellipse-outline';
}
