import { ModuleClientParams } from "@erp/core/client";
import { lazy } from "react";
import { Outlet, RouteObject } from "react-router-dom";

// Lazy load components
const CustomersLayout = lazy(() =>
  import("./components").then((m) => ({ default: m.CustomersLayout }))
);

const CustomersList = lazy(() => import("./pages").then((m) => ({ default: m.CustomersList })));

const CustomerAdd = lazy(() => import("./pages").then((m) => ({ default: m.CustomerCreate })));

//const LogoutPage = lazy(() => import("./app").then((m) => ({ default: m.LogoutPage })));

/*const DealerLayout = lazy(() => import("./app").then((m) => ({ default: m.DealerLayout })));
const DealersList = lazy(() => import("./app").then((m) => ({ default: m.DealersList })));

const LoginPageWithLanguageSelector = lazy(() =>
  import("./app").then((m) => ({ default: m.LoginPageWithLanguageSelector }))
);


const CustomerEdit = lazy(() => import("./app").then((m) => ({ default: m.CustomerEdit })));
const SettingsEditor = lazy(() => import("./app").then((m) => ({ default: m.SettingsEditor })));
const SettingsLayout = lazy(() => import("./app").then((m) => ({ default: m.SettingsLayout })));
const CatalogLayout = lazy(() => import("./app").then((m) => ({ default: m.CatalogLayout })));
const CatalogList = lazy(() => import("./app").then((m) => ({ default: m.CatalogList })));
const DashboardPage = lazy(() => import("./app").then((m) => ({ default: m.DashboardPage })));
const CustomersLayout = lazy(() => import("./app").then((m) => ({ default: m.CustomersLayout })));
const CustomersList = lazy(() => import("./app").then((m) => ({ default: m.CustomersList })));*/

export const CustomerRoutes = (params: ModuleClientParams): RouteObject[] => {
  return [
    {
      path: "customers",
      element: (
        <CustomersLayout>
          <Outlet context={params} />
        </CustomersLayout>
      ),
      children: [
        { path: "", index: true, element: <CustomersList /> }, // index
        { path: "list", element: <CustomersList /> },
        { path: "create", element: <CustomerAdd /> },

        //
        /*{ path: "create", element: <CustomersList /> },
        { path: ":id", element: <CustomersList /> },
        { path: ":id/edit", element: <CustomersList /> },
        { path: ":id/delete", element: <CustomersList /> },
        { path: ":id/view", element: <CustomersList /> },
        { path: ":id/print", element: <CustomersList /> },
        { path: ":id/email", element: <CustomersList /> },
        { path: ":id/download", element: <CustomersList /> },
        { path: ":id/duplicate", element: <CustomersList /> },
        { path: ":id/preview", element: <CustomersList /> },*/
      ],
    },
  ];
};
