import { type SvgIconComponent } from '@mui/icons-material';
import {
  Icon123,
  IconDoor,
  IconUserSearch,
  type TablerIcon,
} from '@tabler/icons-react';

import {
  AiGenerateVariationSparkStreamlinePlump,
  ApplicationAddStreamlinePlumpGradient,
  BeachStreamlinePlump,
  Book1StreamlinePlump,
  BorderFrameStreamlinePlump,
  BuildingOfficeStreamlinePlump,
  CalendarMarkStreamlinePlump,
  ChatsGradient,
  ChatTwoBubblesOvalStreamlinePlump,
  CircleClockStreamlinePlump,
  CogStreamlinePlump,
  CogStreamlinePlumpGradient,
  CompressPdfStreamlinePlump,
  ContactPhonebookStreamlinePlump,
  ContactPhonebookStreamlinePlumpGradient1,
  DocumentCertificateStreamlinePlump,
  DocumentsGradient,
  DollarCoinStreamlinePlump,
  DollarCoinStreamlinePlumpGradient,
  EventsGradient,
  FeedGradient,
  FeedStreamlinePlump,
  FileCheckAlternateStreamlinePlump,
  FileCheckAlternateStreamlinePlumpGradient1,
  FileFolderStreamlinePlump,
  FileReportStreamlinePlump,
  FilesGradient,
  FitHeightStreamlinePlump,
  FitHeightStreamlinePlumpGradient,
  FlipHorizontalCircle1StreamlinePlump,
  GoalsGradient,
  GraduationCapStreamlinePlump,
  GraduationCapStreamlinePlumpGradient1,
  GraphDotStreamlinePlump,
  GroupsGradient,
  Hierarchy15StreamlinePlump,
  InboxContentStreamlinePlump,
  InboxContentStreamlinePlumpGradient1,
  IndustryInnovationAndInfrastructureStreamlinePlump,
  IndustryInnovationAndInfrastructureStreamlinePlumpGradient,
  InsightsGradient,
  LibrariesGradient,
  NewsGradient,
  NewsPaperStreamlinePlump,
  NoPovertyStreamlinePlump,
  NotificationCenterDuotone,
  OnboardingGradient,
  OrgChartGradient,
  PerformanceGradient,
  QuicklinksStreamlinePlump,
  QuicklinksStreamlinePlumpGradient,
  RegionsAndSitesGradient,
  RingingBellNotificationStreamlinePlumpGradient1,
  SafariStreamlinePlump,
  ShiftsDuo,
  ShiftsGradient,
  ShoppingCartAddStreamlinePlump,
  ShoppingCartAddStreamlinePlumpGradient1,
  StarMedal1StreamlinePlumpGradient,
  StopwatchHalfStreamlinePlumpGradient1,
  TaskListEditStreamlinePlumpGradient1,
  TimeOffGradient,
  TimeTrackingGradient,
  UserPinStreamlinePlump,
  UserPinStreamlinePlumpGradient1,
} from '../../../streamlinehq-icons';
import TaskListEditStreamlinePlump from '../../../streamlinehq-icons/TaskListEditStreamlinePlump';

export const SIDEBAR_WIDTH = 280;
export const SIDEBAR_COLLAPSED_WIDTH = 72;

export type IconsModules =
  // Admin specific modules (and shared with web)
  | 'Insights'
  | 'Earn HuCoins'
  | 'Users'
  | 'Groups'
  | 'Segmentation'
  | 'Reports'
  | 'Regions and sites'
  | 'Work schedules'
  | 'Attendance control'
  | 'Magazine'
  | 'Forms & Tasks'
  | 'Surveys'
  | 'People Experience'
  | 'Tickets'
  | 'Training'
  | 'Scorm courses'
  | 'Learnings'
  | 'Service management' // a.k.a Service Portal
  | 'Onboarding'
  | 'Employee Lifecycle' // a.k.a New Onboarding
  | 'Recognition'
  | 'Files'
  | 'Personal documents'
  | 'Widgets'
  | 'Knowledge Libraries'
  | 'Time off'
  | 'Performance'
  | 'Goals'
  | 'Settings'
  | 'Communication'
  | 'Apps'
  | 'Recruiting' // a.k.a ATS (Applicant Tracking System)´

  // Web specific modules
  | 'Feed'
  | 'Chats'
  | 'EventsNemak'
  | 'Events'
  | 'Recognition System'
  | 'Requests'
  | 'Time tracking'
  | 'People'
  | 'Org Chart'
  | 'My documents'
  | 'Marketplace'
  | 'Quick Links'
  | 'Shifts'

  // Navbar
  | 'Notification center';

export type IconKeys =
  // 'icons' |
  'gradient' | 'duotone';

export const ICONS: Record<
  IconKeys,
  Record<
    IconsModules,
    | SvgIconComponent // MUI icons
    | TablerIcon
  >
> = {
  // We'll map them later and leave the apps (web/admin) current icons
  // icons: {
  //   Insights: IconChartInfographic,
  //   'Earn HuCoins': Icon123,
  //   Users: IconUser,
  //   Groups: IconUsersGroup,
  //   Segmentation: Icon123,
  //   Reports: Icon123,
  //   'Regions and sites': Icon123,
  //   'Work schedules': Icon123,
  //   'Attendance control': IconClockHour2,
  //   Magazine: Icon123,
  //   'Forms & Tasks': Icon123,
  //   Surveys: Icon123,
  //   'People Experience': IconHeartHandshake,
  //   Tickets: Icon123,
  //   Training: IconBooks,
  //   'Scorm courses': Icon123,
  //   Courses: Icon123,
  //   'Service management': IconDeviceDesktopShare,
  //   Onboarding: Icon123,
  //   Recognition: Icon123,
  //   Files: Icon123,
  //   'Personal documents': Icon123,
  //   Widgets: Icon123,
  //   'Knowledge Libraries': Icon123,
  //   'Time off': IconBeach,
  //   Performance: IconPhotoSensor3,
  //   Goals: Icon123,
  //   Settings: Icon123,
  //   Communication: Icon123,
  //   Apps: Icon123,
  //   Feed: IconMessageChatbot,
  //   Chats: Icon123,
  //   EventsNemak: IconBrandWhatsapp,
  //   Events: Icon123,
  //   'Recognition System': Icon123,
  //   Requests: Icon123,
  //   'Time tracking': IconClockHour2,
  //   People: IconCircles,
  //   'Org Chart': IconCircles,
  //   'My documents': Icon123,
  //   Marketplace: Icon123,
  //   'Notification center': IconNotification,
  //   'Quick Links': Icon123,
  // },
  gradient: {
    Insights: InsightsGradient,
    'Earn HuCoins': DollarCoinStreamlinePlumpGradient,
    Users: ContactPhonebookStreamlinePlumpGradient1,
    Groups: GroupsGradient,
    Segmentation: IndustryInnovationAndInfrastructureStreamlinePlumpGradient,
    Reports: Icon123,
    'Regions and sites': RegionsAndSitesGradient,
    'Work schedules': StopwatchHalfStreamlinePlumpGradient1,
    'Attendance control': Icon123,
    Magazine: NewsGradient,
    'Forms & Tasks': FileCheckAlternateStreamlinePlumpGradient1,
    Surveys: TaskListEditStreamlinePlumpGradient1,
    'People Experience': UserPinStreamlinePlumpGradient1,
    Tickets: Icon123,
    Training: Icon123,
    'Scorm courses': GraduationCapStreamlinePlumpGradient1,
    Learnings: GraduationCapStreamlinePlumpGradient1,
    'Service management': InboxContentStreamlinePlumpGradient1,
    Onboarding: OnboardingGradient,
    Recognition: StarMedal1StreamlinePlumpGradient,
    Files: FilesGradient,
    'Personal documents': DocumentsGradient,
    Widgets: FitHeightStreamlinePlumpGradient,
    'Knowledge Libraries': LibrariesGradient,
    'Time off': TimeOffGradient,
    Performance: PerformanceGradient,
    Goals: GoalsGradient,
    Settings: CogStreamlinePlumpGradient,
    Communication: Icon123,
    Apps: ApplicationAddStreamlinePlumpGradient,
    Feed: FeedGradient,
    Chats: ChatsGradient,
    EventsNemak: Icon123,
    Events: EventsGradient,
    'Recognition System': Icon123,
    Requests: Icon123,
    'Time tracking': TimeTrackingGradient,
    People: OrgChartGradient,
    'Org Chart': OrgChartGradient,
    'My documents': DocumentsGradient,
    Marketplace: ShoppingCartAddStreamlinePlumpGradient1,
    'Notification center': RingingBellNotificationStreamlinePlumpGradient1,
    'Quick Links': QuicklinksStreamlinePlumpGradient,
    'Employee Lifecycle': IconDoor,
    Shifts: ShiftsGradient,
    Recruiting: IconUserSearch,
  },
  duotone: {
    Insights: GraphDotStreamlinePlump,
    'Earn HuCoins': DollarCoinStreamlinePlump,
    Users: ContactPhonebookStreamlinePlump,
    Groups: NoPovertyStreamlinePlump,
    Segmentation: IndustryInnovationAndInfrastructureStreamlinePlump,
    Reports: Icon123,
    'Regions and sites': BuildingOfficeStreamlinePlump,
    'Work schedules': FlipHorizontalCircle1StreamlinePlump,
    'Attendance control': Icon123,
    Magazine: NewsPaperStreamlinePlump,
    'Forms & Tasks': FileCheckAlternateStreamlinePlump,
    Surveys: TaskListEditStreamlinePlump,
    'People Experience': UserPinStreamlinePlump,
    Tickets: Icon123,
    Training: Icon123,
    'Scorm courses': GraduationCapStreamlinePlump,
    Learnings: GraduationCapStreamlinePlump,
    'Service management': InboxContentStreamlinePlump,
    Onboarding: FileReportStreamlinePlump,
    Recognition: DocumentCertificateStreamlinePlump,
    Files: FileFolderStreamlinePlump,
    'Personal documents': CompressPdfStreamlinePlump,
    Widgets: FitHeightStreamlinePlump,
    'Knowledge Libraries': Book1StreamlinePlump,
    'Time off': BeachStreamlinePlump,
    Performance: SafariStreamlinePlump,
    Goals: BorderFrameStreamlinePlump,
    Settings: CogStreamlinePlump,
    Communication: Icon123,
    Apps: AiGenerateVariationSparkStreamlinePlump,
    Feed: FeedStreamlinePlump,
    Chats: ChatTwoBubblesOvalStreamlinePlump,
    EventsNemak: Icon123,
    Events: CalendarMarkStreamlinePlump,
    'Recognition System': Icon123,
    Requests: Icon123,
    'Time tracking': CircleClockStreamlinePlump,
    People: Hierarchy15StreamlinePlump,
    'Org Chart': Hierarchy15StreamlinePlump,
    'My documents': CompressPdfStreamlinePlump,
    Marketplace: ShoppingCartAddStreamlinePlump,
    'Notification center': NotificationCenterDuotone,
    'Quick Links': QuicklinksStreamlinePlump,
    'Employee Lifecycle': IconDoor,
    Shifts: ShiftsDuo,
    Recruiting: IconUserSearch,
  },
};
