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: '/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: '/assets/assets-list',
    label: 'Assets',
    // 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_ASSETS'
  },
  {
    href: '/data_sources/data_sources-list',
    label: 'Data sources',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiDatabaseImport' in icon ? icon['mdiDatabaseImport' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_DATA_SOURCES'
  },
  {
    href: '/ingestion_pipelines/ingestion_pipelines-list',
    label: 'Ingestion pipelines',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiPipe' in icon ? icon['mdiPipe' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_INGESTION_PIPELINES'
  },
  {
    href: '/telemetry_events/telemetry_events-list',
    label: 'Telemetry events',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiPulse' in icon ? icon['mdiPulse' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_TELEMETRY_EVENTS'
  },
  {
    href: '/ai_models/ai_models-list',
    label: 'Ai models',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiBrain' in icon ? icon['mdiBrain' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_AI_MODELS'
  },
  {
    href: '/detections/detections-list',
    label: 'Detections',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiAlertOctagon' in icon ? icon['mdiAlertOctagon' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_DETECTIONS'
  },
  {
    href: '/incidents/incidents-list',
    label: 'Incidents',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFireAlert' in icon ? icon['mdiFireAlert' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_INCIDENTS'
  },
  {
    href: '/response_playbooks/response_playbooks-list',
    label: 'Response playbooks',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiScriptTextOutline' in icon ? icon['mdiScriptTextOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_RESPONSE_PLAYBOOKS'
  },
  {
    href: '/response_actions/response_actions-list',
    label: 'Response actions',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiShieldPlayOutline' in icon ? icon['mdiShieldPlayOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_RESPONSE_ACTIONS'
  },
  {
    href: '/soc_agents/soc_agents-list',
    label: 'Soc agents',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiRobotShield' in icon ? icon['mdiRobotShield' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SOC_AGENTS'
  },
  {
    href: '/threat_actors/threat_actors-list',
    label: 'Threat actors',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiAccountCowboyHatOutline' in icon ? icon['mdiAccountCowboyHatOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_THREAT_ACTORS'
  },
  {
    href: '/threat_indicators/threat_indicators-list',
    label: 'Threat indicators',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFingerprint' in icon ? icon['mdiFingerprint' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_THREAT_INDICATORS'
  },
  {
    href: '/threat_campaigns/threat_campaigns-list',
    label: 'Threat campaigns',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiTargetAccount' in icon ? icon['mdiTargetAccount' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_THREAT_CAMPAIGNS'
  },
  {
    href: '/attack_map_events/attack_map_events-list',
    label: 'Attack map events',
    // 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_ATTACK_MAP_EVENTS'
  },
  {
    href: '/risk_assessments/risk_assessments-list',
    label: 'Risk assessments',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiChartTimelineVariant' in icon ? icon['mdiChartTimelineVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_RISK_ASSESSMENTS'
  },
  {
    href: '/simulation_labs/simulation_labs-list',
    label: 'Simulation labs',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFlaskOutline' in icon ? icon['mdiFlaskOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SIMULATION_LABS'
  },
  {
    href: '/simulation_runs/simulation_runs-list',
    label: 'Simulation runs',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiPlayBoxMultipleOutline' in icon ? icon['mdiPlayBoxMultipleOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SIMULATION_RUNS'
  },
  {
    href: '/infrastructure_clusters/infrastructure_clusters-list',
    label: 'Infrastructure clusters',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiKubernetes' in icon ? icon['mdiKubernetes' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_INFRASTRUCTURE_CLUSTERS'
  },
  {
    href: '/edge_sensors/edge_sensors-list',
    label: 'Edge sensors',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiAccessPointNetwork' in icon ? icon['mdiAccessPointNetwork' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_EDGE_SENSORS'
  },
  {
    href: '/reports/reports-list',
    label: 'Reports',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFileChartOutline' in icon ? icon['mdiFileChartOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_REPORTS'
  },
  {
    href: '/ai_recommendations/ai_recommendations-list',
    label: 'Ai recommendations',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiLightbulbOnOutline' in icon ? icon['mdiLightbulbOnOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_AI_RECOMMENDATIONS'
  },
  {
    href: '/profile',
    label: 'Profile',
    icon: icon.mdiAccountCircle,
  },

 
  {
    href: '/api-docs',
    target: '_blank',
    label: 'Swagger API',
    icon: icon.mdiFileCode,
    permissions: 'READ_API_DOCS'
  },
]

export default menuAside
