import { Loadable, lazyRetry } from 'src/lazyLoad';
import { type PartialRoute } from 'src/routes';
import { ROUTE_PERMISSIONS } from 'src/utils/permissions';

import PermissionsGuard from 'src/components/PermissionsGuard';

const HuLibrariesSegmentation = Loadable(
  lazyRetry(() => import('src/pages/dashboard/HuLibraries/Segmentation')),
);

const HuLibrariesReport = Loadable(
  lazyRetry(() => import('src/pages/dashboard/HuLibraries/Report')),
);

/**
 * @description HuLibraries article actions reused under root and child layouts
 * to avoid duplicating route definitions per action.
 */
export const articleActionRoutes: PartialRoute[] = [
  {
    path: 'segmentation',
    element: (
      <PermissionsGuard
        requiredPermissions={ROUTE_PERMISSIONS.KNOWLEDGE_LIBRARIES}
      >
        <HuLibrariesSegmentation />
      </PermissionsGuard>
    ),
  },
  {
    path: 'report',
    element: (
      <PermissionsGuard
        requiredPermissions={ROUTE_PERMISSIONS.KNOWLEDGE_LIBRARIES_REPORT}
      >
        <HuLibrariesReport />
      </PermissionsGuard>
    ),
  },
];
