import {
  Compass,
  Home,
  Library,
  Settings,
  Shield,
} from 'lucide-solid'
import type { Component } from 'solid-js'

type IconComponent = Component<{ class?: string; size?: number | string }>

export interface AppNavRoute {
  path: string
  label: string
  description: string
  icon: IconComponent
  implemented: boolean
}

export const appNavRoutes: AppNavRoute[] = [
  {
    path: '/app/dashboard',
    label: 'Home',
    description: 'Your media overview and activity.',
    icon: Home,
    implemented: true,
  },
  {
    path: '/app/discover',
    label: 'Discover',
    description: 'Browse and search the catalog.',
    icon: Compass,
    implemented: true,
  },
  {
    path: '/app/library',
    label: 'Library',
    description: 'Your collection, queue, and history.',
    icon: Library,
    implemented: true,
  },
  {
    path: '/app/settings',
    label: 'Settings',
    description: 'Profile, playback, and integrations.',
    icon: Settings,
    implemented: true,
  },
  {
    path: '/app/admin',
    label: 'Admin',
    description: 'System controls and diagnostics.',
    icon: Shield,
    implemented: true,
  },
]

export const routeByPath = (path: string): AppNavRoute | undefined =>
  appNavRoutes.find((route) => route.path === path)
