import { configureStore } from '@reduxjs/toolkit';
import employeeSlice from '../app/employees/slice';
// import rolesMappingSlice from '../app/role/mapping/slice';
import roleSlice from '../app/role/slice';
import clusterSlice from '../app/cluster/slice';
import citySlice from '../app/cities/slice';
import usersSlice from '../app/dissociation/slice';
import designationSlice from '../app/designations/slice';
import allLeadsSlice from '../app/enquiries/slice';
import configurationSlice from '../app/configuration/slice';
import regionSlice from '../app/region/slice';
import userProfileSlice from '../app/profile/slice';
import customerSlice from '../app/customer/slice';
// import launchReducer from '../app/launches/launchSlice';
// import  projectReducer from '../app/launches/projectSlice'; // Replace with the actual path to your projectSlice file
import LaunchSlice from '../app/launches/slice';
import leadRequestsSlice from '../app/lead-requests/slice';
import builderSlice from '../app/builders/slice';

import dashboardSlice from '../app/dashboard/slice';
import leadTransferSlice from '../app/lead-transfer/slice';
import followUpSlice from '../app/enquiries/followUpSlice';
import featureControlSlice from '../app/feature-control/slice';
import leaderboardSlice from '../app/leaderboard/slice';

// config the store
const store = configureStore({
  reducer: {
    users: employeeSlice,
    cities: citySlice,
    // user: userSlice,
    // roleMapping: rolesMappingSlice,
    roles: roleSlice,
    allRoles: roleSlice,
    features: roleSlice,
    permissions: roleSlice,
    cluster: clusterSlice,
    designation: designationSlice,
    employees: employeeSlice,
    configuration: configurationSlice,
    region: regionSlice,
    allLeads: allLeadsSlice,
    followUpLeads: followUpSlice,
    launches: LaunchSlice,
    leadRequests: leadRequestsSlice,
    builder: builderSlice,
    userProfile: userProfileSlice,
    customer: customerSlice,

    dashboard: dashboardSlice,
    dissociation: usersSlice,
    lead_transfer: leadTransferSlice,
    featureControls: featureControlSlice,
    leaderboard: leaderboardSlice,

    // launches : LaunchSlice
  },
});

export default store;
export type RootState = ReturnType<typeof store.getState>
export type AppDispatch = typeof store.dispatch
