import { lazyLoadView } from '@utils/lazyloadview';
import { getScopes } from '@utils/scopes';
import { USER_SCOPES } from '@constants/entities/Scope';

// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export default function createRoute({ path, icon, label, order, scopes }) {
  return {
    component: () =>
      lazyLoadView(import('@/recruits/layouts/tabbed-card-layout')),
    path,
    children: [
      {
        name: 'accounts',
        component: () => import('@/recruits/components/accounts/index.vue'),
        path: '',
        meta: {
          icon,
          label,
          place: 'drawer',
          order,
          scopes,
        },
      },
      {
        component: () =>
          import('@/recruits/components/accounts/record/index.vue'),
        path: ':id',
        name: 'account',
        meta: {
          icon,
          label,
          // Флаг, который позволяет сделать редирект на степпер, если придёт соответствующий пуш
          hasRedirectToStepper: true,
          scopes,
        },
        redirect: { name: 'account-basic' },
        children: [
          {
            name: 'account-basic',
            component: () =>
              import(
                '@/recruits/components/accounts/record/tabs/Basic/index.vue'
              ),
            path: 'basic',
            meta: {
              // Флаг, который позволяет сделать редирект на степпер, если придёт соответствующий пуш
              hasRedirectToStepper: true,
            },
          },
          {
            name: 'account-organizations',
            component: () =>
              import(
                '@/recruits/components/accounts/record/tabs/Organizations/index.vue'
              ),
            path: 'organizations',
            meta: {
              // Флаг, который позволяет сделать редирект на степпер, если придёт соответствующий пуш
              hasRedirectToStepper: true,
            },
          },
          {
            name: 'account-roles',
            component: () =>
              import(
                '@/recruits/components/accounts/record/tabs/Roles/index.vue'
              ),
            path: 'roles',
            meta: {
              // Флаг, который позволяет сделать редирект на степпер, если придёт соответствующий пуш
              hasRedirectToStepper: true,
            },
          },
        ],
      },
    ],
  };
}
