/**
 * Network plugin routes
 */
export default [
  {
    path: 'settings/networktypes',
    name: 'network-types',
    component: () => import('./views/NetworkTypesList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'network' }
  },
  {
    path: 'network',
    name: 'network',
    component: () => import('./views/NetworkHub.vue'),
    meta: { plugin: 'network' }
  },
  {
    path: 'network/new',
    name: 'network-new',
    component: () => import('./views/NetworkDeviceForm.vue'),
    meta: { requiresAuth: true, plugin: 'network' }
  },
  {
    path: 'network/:id',
    name: 'network-detail',
    component: () => import('./views/NetworkDeviceDetail.vue'),
    meta: { plugin: 'network' }
  },
  {
    path: 'network/:id/edit',
    name: 'network-edit',
    component: () => import('./views/NetworkDeviceForm.vue'),
    meta: { requiresAuth: true, plugin: 'network' }
  },
  {
    // Legacy path -> the Networks tab of the hub.
    path: 'networks',
    redirect: { path: '/network', query: { tab: 'networks' } }
  },
  {
    path: 'networks/:id',
    name: 'network-subnet-detail',
    component: () => import('./views/SubnetDetail.vue'),
    meta: { plugin: 'network' }
  },
  // Network-specific settings
  {
    path: 'settings/vlans',
    name: 'vlans',
    component: () => import('./views/VLANsList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'network' }
  },
  {
    path: 'settings/subnets',
    name: 'subnets',
    component: () => import('./views/SubnetsList.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'network' }
  }
]

// No full-screen routes: every view in this plugin renders inside
// AppLayout. Declared so routes.gen.js can read `.toplevel` off the module
// without Rollup warning about a missing export.
export const toplevel = []
