import { lazy } from 'react';

// project import
import MainLayout from 'layout/MainLayout';
import CommonLayout from 'layout/CommonLayout';
import Loadable from 'components/Loadable';
// import AuthGuard from 'utils/route-guard/AuthGuard';

// pages routing
const MaintenanceError = Loadable(lazy(() => import('pages/maintenance/404')));
const MaintenanceError500 = Loadable(lazy(() => import('pages/maintenance/500')));
const MaintenanceUnderConstruction = Loadable(lazy(() => import('pages/maintenance/under-construction')));
const MaintenanceComingSoon = Loadable(lazy(() => import('pages/maintenance/coming-soon')));

// render - sample page
// const SamplePage = Loadable(lazy(() => import('pages/extra-pages/sample-page')));
const Login = Loadable(lazy(() => import('pages/nearle/login1')));
// const Dashboard = Loadable(lazy(() => import('pages/nearle/dashboard')));

const Tenants = Loadable(lazy(() => import('pages/nearle/clients/Tenants')));
const ClientsPricing = Loadable(lazy(() => import('pages/nearle/clientPricing/clientPricing')));

const Orders = Loadable(lazy(() => import('pages/nearle/orders/orders')));
const OrdersPreview = Loadable(lazy(() => import('pages/nearle/orders/OrdersPreview')));

const Deliveries = Loadable(lazy(() => import('pages/nearle/deliveries/deliveries')));
const Customers = Loadable(lazy(() => import('pages/nearle/customers/customers')));

const Invoice = Loadable(lazy(() => import('pages/nearle/invoice/invoice')));
const InvoicePreview = Loadable(lazy(() => import('../pages/nearle/invoice/invoicePreview')));

const Details = Loadable(lazy(() => import('pages/nearle/orders/details')));

const ViewProfile = Loadable(lazy(() => import('pages/nearle/viewProfile')));

const Createorder1 = Loadable(lazy(() => import('pages/nearle/orders/createorder1')));
const MultipleOrders = Loadable(lazy(() => import('pages/nearle/orders/multipleOrders')));

const Createclient = Loadable(lazy(() => import('pages/nearle/clients/createclient')));
const CreateCustomer = Loadable(lazy(() => import('pages/nearle/clients/createCustomer')));

const Requests = Loadable(lazy(() => import('pages/nearle/requests/requests')));
const OrdersSummary = Loadable(lazy(() => import('pages/nearle/reports/ordersSummary')));
const OrdersDetails = Loadable(lazy(() => import('pages/nearle/reports/ordersDetails')));
const RidersSummary = Loadable(lazy(() => import('pages/nearle/reports/ridersSummary')));
const RidersLogs = Loadable(lazy(() => import('pages/nearle/reports/ridersLogs')));
const Profitability = Loadable(lazy(() => import('pages/nearle/reports/profitability')));

const Riders = Loadable(lazy(() => import('pages/nearle/riders/riders')));
const Createrider = Loadable(lazy(() => import('pages/nearle/riders/createrider')));
const EditRider = Loadable(lazy(() => import('pages/nearle/riders/editRider')));
const Dispatch = Loadable(lazy(() => import('pages/nearle/dispatch/Dispatch')));
const DispatchPreview = Loadable(lazy(() => import('pages/nearle/dispatch/Preview')));


// ==============================|| MAIN ROUTING ||============================== //

const MainRoutes = {
  path: '/',
  children: [
    {
      path: '/',
      element: (
        // <AuthGuard>
        <MainLayout />
        // </AuthGuard>
      ),
      children: [
        {
          path: 'nearle',
          children: [
            {
              path: 'orders',
              element: <Orders />
            },
            {
              path: 'orders/preview',
              element: <OrdersPreview />
            },
            {
              path: 'deliveries',
              element: <Deliveries />
            },
            {
              path: 'tenants',
              element: <Tenants />
            },
            {
              path: 'pricing',
              element: <ClientsPricing />
            },
            {
              path: 'customers',
              element: <Customers />
            },
            {
              path: 'invoice',
              children: [
                {
                  index: true,
                  element: <Invoice />
                },
                {
                  path: 'preview',
                  element: <InvoicePreview />
                }
              ]
            },
            {
              path: 'invoice/preview',
              element: <InvoicePreview />
            },

            {
              path: 'requests',
              element: <Requests />
            },
            {
              path: 'riders',
              element: <Riders />
            },
            {
              path: 'riders/create',
              element: <Createrider />
            },
            {
              path: 'riders/edit',
              element: <EditRider />
            },

            {
              path: 'orders/create',
              element: <Createorder1 />
            },
            {
              path: 'orders/createorders',
              element: <MultipleOrders />
            },
            {
              path: 'orders/details',
              element: <Details />
            },
            {
              path: 'clients/create',
              element: <Createclient />
            },
            {
              path: 'customer/create',
              element: <CreateCustomer />
            },
            {
              path: 'reports',
              children: [
                {
                  path: 'orderssummary',
                  element: <OrdersSummary />
                },
                {
                  path: 'ordersdetails',
                  element: <OrdersDetails />
                },
                {
                  path: 'riderssummary',
                  element: <RidersSummary />
                },
                {
                  path: 'riderslogs',
                  element: <RidersLogs />
                },
                {
                  path: 'profitability',
                  element: <Profitability />
                }
              ]
            },
            {
              path: 'dispatch',
              element: <Dispatch />
            },
            {
              path: 'dispatch/preview',
              element: <DispatchPreview />
            }
          ]
        },

        {
          path: 'viewprofile',
          element: <ViewProfile />
        }

        // {
        //   path: 'orders/create',
        //   element: <Createorder />
        // },
      ]
    },

    {
      path: '/login',
      element: <Login />
    },
    {
      path: '/maintenance',
      element: <CommonLayout />,
      children: [
        {
          path: '404',
          element: <MaintenanceError />
        },
        {
          path: '500',
          element: <MaintenanceError500 />
        },
        {
          path: 'under-construction',
          element: <MaintenanceUnderConstruction />
        },
        {
          path: 'coming-soon',
          element: <MaintenanceComingSoon />
        }
      ]
    },
  ]
};


export default MainRoutes;
