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: '/organization_memberships/organization_memberships-list',
    label: 'Organization memberships',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiAccountMultiple' in icon ? icon['mdiAccountMultiple' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_ORGANIZATION_MEMBERSHIPS'
  },
  {
    href: '/projects/projects-list',
    label: 'Projects',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFolderCode' in icon ? icon['mdiFolderCode' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_PROJECTS'
  },
  {
    href: '/workspaces/workspaces-list',
    label: 'Workspaces',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiViewDashboard' in icon ? icon['mdiViewDashboard' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_WORKSPACES'
  },
  {
    href: '/llm_providers/llm_providers-list',
    label: 'Llm providers',
    // 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_LLM_PROVIDERS'
  },
  {
    href: '/llm_models/llm_models-list',
    label: 'Llm models',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiChip' in icon ? icon['mdiChip' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_LLM_MODELS'
  },
  {
    href: '/llm_api_keys/llm_api_keys-list',
    label: 'Llm api keys',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiKey' in icon ? icon['mdiKey' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_LLM_API_KEYS'
  },
  {
    href: '/key_rotation_policies/key_rotation_policies-list',
    label: 'Key rotation policies',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiAutorenew' in icon ? icon['mdiAutorenew' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_KEY_ROTATION_POLICIES'
  },
  {
    href: '/prompt_templates/prompt_templates-list',
    label: 'Prompt templates',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiTextBoxEdit' in icon ? icon['mdiTextBoxEdit' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_PROMPT_TEMPLATES'
  },
  {
    href: '/chats/chats-list',
    label: 'Chats',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiChatProcessing' in icon ? icon['mdiChatProcessing' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CHATS'
  },
  {
    href: '/chat_messages/chat_messages-list',
    label: 'Chat messages',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiMessageTextLock' in icon ? icon['mdiMessageTextLock' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CHAT_MESSAGES'
  },
  {
    href: '/encryption_sessions/encryption_sessions-list',
    label: 'Encryption sessions',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiShieldKey' in icon ? icon['mdiShieldKey' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_ENCRYPTION_SESSIONS'
  },
  {
    href: '/code_repositories/code_repositories-list',
    label: 'Code repositories',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiSourceRepository' in icon ? icon['mdiSourceRepository' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CODE_REPOSITORIES'
  },
  {
    href: '/code_files/code_files-list',
    label: 'Code files',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFileCode' in icon ? icon['mdiFileCode' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CODE_FILES'
  },
  {
    href: '/code_change_sets/code_change_sets-list',
    label: 'Code change sets',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiSourceCommit' in icon ? icon['mdiSourceCommit' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CODE_CHANGE_SETS'
  },
  {
    href: '/code_patches/code_patches-list',
    label: 'Code patches',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFileReplace' in icon ? icon['mdiFileReplace' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_CODE_PATCHES'
  },
  {
    href: '/build_jobs/build_jobs-list',
    label: 'Build jobs',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiHammerWrench' in icon ? icon['mdiHammerWrench' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_BUILD_JOBS'
  },
  {
    href: '/build_pipelines/build_pipelines-list',
    label: 'Build pipelines',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiPipeline' in icon ? icon['mdiPipeline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_BUILD_PIPELINES'
  },
  {
    href: '/build_artifacts/build_artifacts-list',
    label: 'Build artifacts',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiPackageDown' in icon ? icon['mdiPackageDown' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_BUILD_ARTIFACTS'
  },
  {
    href: '/web_search_queries/web_search_queries-list',
    label: 'Web search queries',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiMagnify' in icon ? icon['mdiMagnify' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_WEB_SEARCH_QUERIES'
  },
  {
    href: '/web_search_results/web_search_results-list',
    label: 'Web search results',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiFileFind' in icon ? icon['mdiFileFind' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_WEB_SEARCH_RESULTS'
  },
  {
    href: '/system_health_checks/system_health_checks-list',
    label: 'System health checks',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiHeartPulse' in icon ? icon['mdiHeartPulse' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_SYSTEM_HEALTH_CHECKS'
  },
  {
    href: '/audit_events/audit_events-list',
    label: 'Audit events',
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    icon: 'mdiClipboardTextClock' in icon ? icon['mdiClipboardTextClock' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
    permissions: 'READ_AUDIT_EVENTS'
  },
  {
    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
