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

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