import item from './modules/item';
import customer from './modules/customer';
import ticket from './modules/ticket';
import claim from './modules/claim';
import route from './modules/route';
import worker from './modules/worker';
import invoiceOut from './modules/invoiceOut';
import invoiceIn from './modules/invoiceIn';
import wagon from './modules/wagon';
import supplier from './modules/Supplier';
import travel from './modules/travel';
import department from './modules/department';
import role from './modules/role';
import ItemType from './modules/itemType';
import shelving from 'src/router/modules/shelving';
import order from 'src/router/modules/order';
import entry from 'src/router/modules/entry';
import roadmap from 'src/router/modules/roadmap';
import parking from 'src/router/modules/parking';
import agency from 'src/router/modules/agency';
import zone from 'src/router/modules/zone';
import account from './modules/account';
import monitor from 'src/router/modules/monitor';
import mailAlias from './modules/mailAlias';

const routes = [
    {
        path: '/login',
        component: () => import('../layouts/OutLayout.vue'),
        children: [
            {
                path: '',
                name: 'Login',
                meta: { title: 'logIn' },
                component: () => import('../pages/Login/LoginMain.vue'),
            },
            {
                path: '/twoFactor',
                name: 'TwoFactor',
                meta: { title: 'twoFactor' },
                component: () => import('../pages/Login/TwoFactor.vue'),
            },
            {
                path: '/verifyEmail',
                name: 'VerifyEmail',
                meta: { title: 'verifyEmail' },
                component: () => import('../pages/Login/VerifyEmail.vue'),
            },
            {
                path: '/recoverPassword',
                name: 'RecoverPassword',
                meta: { title: 'recoverPassword' },
                component: () => import('../pages/Login/RecoverPassword.vue'),
            },
            {
                path: '/resetPassword',
                name: 'ResetPassword',
                meta: { title: 'resetPassword' },
                component: () => import('../pages/Login/ResetPassword.vue'),
            },
        ],
    },
    {
        path: '/',
        name: 'Main',
        component: () => import('../layouts/MainLayout.vue'),
        redirect: { name: 'Dashboard' },
        children: [
            {
                path: '/dashboard',
                name: 'Dashboard',
                meta: { title: 'dashboard', icon: 'dashboard' },
                component: () => import('../pages/Dashboard/DashboardMain.vue'),
            },
            // Module routes
            item,
            customer,
            ticket,
            claim,
            worker,
            shelving,
            invoiceOut,
            invoiceIn,
            monitor,
            wagon,
            order,
            route,
            supplier,
            travel,
            department,
            roadmap,
            entry,
            parking,
            agency,
            ItemType,
            zone,
            account,
            role,
            mailAlias,
            {
                path: '/:catchAll(.*)*',
                name: 'NotFound',
                component: () => import('../pages/NotFound.vue'),
            },
        ],
    },
];

export default routes;
