/**
 * GE-Enforce plugin routes.
 *
 * A top-level section (not under /settings) - the manifest editor + fleet
 * reports are a large operational surface, so they get their own full-width
 * shell with tabs. meta.plugin = 'geenforce' so the ADR-009 guard hides the
 * section when the plugin is disabled. Admin-only.
 */
export default [
  {
    path: 'geenforce',
    component: () => import('./views/GeEnforceLayout.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' },
    children: [
      { path: '', redirect: '/geenforce/manifests' },
      {
        path: 'manifests',
        name: 'geenforce-manifests',
        component: () => import('./views/ManifestEditor.vue'),
        meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' }
      },
      {
        path: 'reports',
        name: 'geenforce-reports',
        component: () => import('./views/EnforcementReports.vue'),
        meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' }
      }
    ]
  },
  {
    // Config lives in the Settings rail (contributed via get_settings_cards),
    // not inside the GE-Enforce section tabs.
    path: 'settings/geenforce',
    name: 'settings-geenforce',
    component: () => import('./views/GeEnforceSettings.vue'),
    meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' }
  }
]

// 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 = []
