import * as icon from '@mdi/js';
import { MenuAsideItem } from './interfaces';

const menuAside: MenuAsideItem[] = [
  {
    href: '/dashboard',
    icon: icon.mdiViewDashboardOutline,
    label: 'Dashboard',
  },

  {
    href: '/users/users-list',
    label: 'Users',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: icon.mdiAccountGroup ?? icon.mdiTable,
    permissions: 'READ_USERS',
  },
  {
    href: '/access_roles/access_roles-list',
    label: 'Access roles',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiLockOutline' in icon
        ? icon['mdiLockOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_ACCESS_ROLES',
  },
  {
    href: '/ai_agents/ai_agents-list',
    label: 'Ai agents',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiRobotOutline' in icon
        ? icon['mdiRobotOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_AI_AGENTS',
  },
  {
    href: '/alerts/alerts-list',
    label: 'Alerts',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiBellAlertOutline' in icon
        ? icon['mdiBellAlertOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_ALERTS',
  },
  {
    href: '/automation_jobs/automation_jobs-list',
    label: 'Automation jobs',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiRobot' in icon
        ? icon['mdiRobot' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_AUTOMATION_JOBS',
  },
  {
    href: '/campaigns/campaigns-list',
    label: 'Campaigns',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiBullhornOutline' in icon
        ? icon['mdiBullhornOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CAMPAIGNS',
  },
  {
    href: '/compliance_audits/compliance_audits-list',
    label: 'Compliance audits',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiClipboardCheckOutline' in icon
        ? icon['mdiClipboardCheckOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_COMPLIANCE_AUDITS',
  },
  {
    href: '/compliance_issues/compliance_issues-list',
    label: 'Compliance issues',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiAlertCircleOutline' in icon
        ? icon['mdiAlertCircleOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_COMPLIANCE_ISSUES',
  },
  {
    href: '/expansion_plans/expansion_plans-list',
    label: 'Expansion plans',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiMapMarkerPath' in icon
        ? icon['mdiMapMarkerPath' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_EXPANSION_PLANS',
  },
  {
    href: '/infrastructure_statuses/infrastructure_statuses-list',
    label: 'Infrastructure statuses',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiServerNetwork' in icon
        ? icon['mdiServerNetwork' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_INFRASTRUCTURE_STATUSES',
  },
  {
    href: '/invoices/invoices-list',
    label: 'Invoices',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiFileDocument' in icon
        ? icon['mdiFileDocument' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_INVOICES',
  },
  {
    href: '/market_signals/market_signals-list',
    label: 'Market signals',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiSignalCellularOutline' in icon
        ? icon['mdiSignalCellularOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_MARKET_SIGNALS',
  },
  {
    href: '/onboarding_cases/onboarding_cases-list',
    label: 'Onboarding cases',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiAccountPlusOutline' in icon
        ? icon['mdiAccountPlusOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_ONBOARDING_CASES',
  },
  {
    href: '/patient_messages/patient_messages-list',
    label: 'Patient messages',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiMessageTextOutline' in icon
        ? icon['mdiMessageTextOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_PATIENT_MESSAGES',
  },
  {
    href: '/patient_profiles/patient_profiles-list',
    label: 'Patient profiles',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiAccountHeartOutline' in icon
        ? icon['mdiAccountHeartOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_PATIENT_PROFILES',
  },
  {
    href: '/platform_metrics/platform_metrics-list',
    label: 'Platform metrics',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiChartBar' in icon
        ? icon['mdiChartBar' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_PLATFORM_METRICS',
  },
  {
    href: '/pricing_strategies/pricing_strategies-list',
    label: 'Pricing strategies',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiCurrencyUsd' in icon
        ? icon['mdiCurrencyUsd' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_PRICING_STRATEGIES',
  },
  {
    href: '/revenue_summaries/revenue_summaries-list',
    label: 'Revenue summaries',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiChartLine' in icon
        ? icon['mdiChartLine' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_REVENUE_SUMMARIES',
  },
  {
    href: '/subscriber_activities/subscriber_activities-list',
    label: 'Subscriber activities',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiHistory' in icon
        ? icon['mdiHistory' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SUBSCRIBER_ACTIVITIES',
  },
  {
    href: '/subscriber_roles/subscriber_roles-list',
    label: 'Subscriber roles',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiAccountKeyOutline' in icon
        ? icon['mdiAccountKeyOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SUBSCRIBER_ROLES',
  },
  {
    href: '/subscribers/subscribers-list',
    label: 'Subscribers',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiAccountGroupOutline' in icon
        ? icon['mdiAccountGroupOutline' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SUBSCRIBERS',
  },
  {
    href: '/support_tickets/support_tickets-list',
    label: 'Support tickets',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon:
      'mdiTicketAccount' in icon
        ? icon['mdiTicketAccount' as keyof typeof icon]
        : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SUPPORT_TICKETS',
  },
  {
    href: '/roles/roles-list',
    label: 'Roles',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: icon.mdiShieldAccountVariantOutline ?? icon.mdiTable,
    permissions: 'READ_ROLES',
  },
  {
    href: '/permissions/permissions-list',
    label: 'Permissions',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: icon.mdiShieldAccountOutline ?? icon.mdiTable,
    permissions: 'READ_PERMISSIONS',
  },
  {
    href: '/organizations/organizations-list',
    label: 'Organizations',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_ORGANIZATIONS',
  },
  {
    href: '/profile',
    label: 'Profile',
    icon: icon.mdiAccountCircle,
  },

  {
    href: '/home',
    label: 'Home page',
    icon: icon.mdiHome,
    withDevider: true,
  },
  {
    href: '/api-docs',
    target: '_blank',
    label: 'Swagger API',
    icon: icon.mdiFileCode,
    permissions: 'READ_API_DOCS',
  },
];

export default menuAside;
