/**
 * Core routes - Dashboard, Search, Map, Reports, Settings, Employees
 */
export default [
  {
    path: '',
    name: 'dashboard',
    component: () => import('../../views/Dashboard.vue')
  },
  {
    path: 'search',
    name: 'search',
    component: () => import('../../views/SearchResults.vue')
  },
  {
    path: 'map',
    name: 'map',
    component: () => import('../../views/MapView.vue')
  },
  {
    path: 'map/editor',
    name: 'map-editor',
    component: () => import('../../views/MapEditor.vue'),
    meta: { requiresAuth: true }
  },
  {
    path: 'reports',
    name: 'reports',
    component: () => import('../../views/reports/ReportsIndex.vue')
  },
  {
    path: 'reports/pc-relationships',
    name: 'report-pc-relationships',
    component: () => import('../../views/reports/PCRelationshipsReport.vue')
  },
  {
    path: 'reports/toner',
    name: 'toner-report',
    component: () => import('../../views/reports/TonerReport.vue')
  },
  {
    path: 'employees/:sso',
    name: 'employee-detail',
    component: () => import('../../views/employees/EmployeeDetail.vue')
  },
  // Settings
  {
    path: 'settings',
    name: 'settings',
    component: () => import('../../views/settings/SettingsIndex.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/vendors',
    name: 'vendors',
    component: () => import('../../views/vendors/VendorsList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/machinetypes',
    name: 'machinetypes',
    component: () => import('../../views/settings/MachineTypesList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/locations',
    name: 'locations',
    component: () => import('../../views/settings/LocationsList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/statuses',
    name: 'statuses',
    component: () => import('../../views/settings/StatusesList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/models',
    name: 'models',
    component: () => import('../../views/settings/ModelsList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/businessunits',
    name: 'businessunits',
    component: () => import('../../views/settings/BusinessUnitsList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/system',
    name: 'system-settings',
    component: () => import('../../views/settings/SystemSettings.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/auditlogs',
    name: 'audit-logs',
    component: () => import('../../views/settings/AuditLogs.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  },
  {
    path: 'settings/users',
    name: 'users',
    component: () => import('../../views/settings/UsersList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true }
  }
]
