/**
 * Printers plugin routes
 */
export default [
  {
    path: 'reports/toner',
    name: 'toner-report',
    component: () => import('./views/TonerReport.vue'),
    meta: { plugin: 'printers' }
  },
  {
    path: 'reports/toner-forecast',
    name: 'toner-forecast',
    component: () => import('./views/TonerForecast.vue'),
    meta: { plugin: 'printers' }
  },
  {
    path: 'settings/printertypes',
    name: 'printer-types',
    component: () => import('./views/PrinterTypesList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'printers' }
  },
  {
    path: 'settings/zabbix',
    name: 'zabbix-settings',
    component: () => import('./views/ZabbixSettings.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'printers' }
  },
  {
    path: 'settings/printer-alerts',
    name: 'printer-alerts',
    component: () => import('./views/PrinterAlertsSettings.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'printers' }
  },
  {
    path: 'printers',
    name: 'printers',
    component: () => import('./views/PrintersList.vue'),
    meta: { plugin: 'printers' }
  },
  {
    path: 'printers/new',
    name: 'printer-new',
    component: () => import('./views/PrinterForm.vue'),
    meta: { requiresAuth: true, plugin: 'printers' }
  },
  {
    path: 'printers/:id',
    name: 'printer-detail',
    component: () => import('./views/PrinterDetail.vue'),
    meta: { plugin: 'printers' }
  },
  {
    path: 'printers/:id/edit',
    name: 'printer-edit',
    component: () => import('./views/PrinterForm.vue'),
    meta: { requiresAuth: true, plugin: 'printers' }
  },
  // printer-specific settings
  {
    path: 'settings/modelsupplies',
    name: 'model-supplies',
    component: () => import('./views/ModelSuppliesList.vue'),
    meta: { requiresAuth: true, plugin: 'printers' }
  },
  {
    path: 'settings/printerdrivers',
    name: 'printer-drivers',
    component: () => import('./views/PrinterDriversList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'printers' }
  }
]

export const toplevel = [
  {
    path: '/printer-installer',
    name: 'printer-installer-map',
    component: () => import('./views/PrinterInstallerMap.vue'),
    // Public: it only reads the public install-list + downloads the install
    // .bat (both jwt-optional endpoints), so no login needed - same as the
    // other display/kiosk tools.
    meta: { plugin: 'printers' }
  },
  {
    path: '/print/printer-qr',
    name: 'print-printer-qr-batch',
    component: () => import('./views/PrinterQRBatch.vue'),
    meta: { plugin: 'printers' }
  },
  {
    path: '/print/printer-qr/:id',
    name: 'print-printer-qr-single',
    component: () => import('./views/PrinterQRSingle.vue'),
    meta: { plugin: 'printers' }
  }
]
