// /redux/store.js
import { configureStore } from "@reduxjs/toolkit";
//-----database---------------------------------------------------
//--pois------------
import poiTypesReducer from "./slices/database/pois/poiTypesSlice";
import poiTypReducer from "./slices/database/pois/poiTypSlice";
import poiIconsDataReducer from "./slices/database/pois/poiIconsDataSlice";
import poiLayerVisibleReducer from "./slices/database/pois/poiLayerVisibleSlice";
import addPoiOnPolylineReducer from "./slices/database/pois/addPoiOnPolylineSlice";
import selectedPoiReducer from "./slices/database/pois/selectedPoiSlice";
import currentPoiReducer from "./slices/database/pois/currentPoiSlice";
import poiReadFromDbTriggerReducer from "./slices/database/pois/poiReadFromDbTriggerSlice";
import readPoiMarkersStoreReducer from "./slices/database/pois/readPoiMarkersStoreSlice";
import poiMarkersReducer from "./slices/database/pois/poiMarkersSlice";
//--polylines------------
import gisLinesFromDatabaseReducer from "./slices/database/polylines/gisLinesSlice";
import polylineLayerVisibleReducer from "./slices/database/polylines/polylineLayerVisibleSlice";
import polylineContextMenuReducer from "./slices/database/polylines/polylineContextMenuSlice";
import polylineEventsDisabledReducer from "./slices/database/polylines/polylineEventsDisabledSlice";

//----webservice---------------------------------------------------------------
import gisStationsStaticDistrictReducer from "./slices/webservice/gisStationsStaticDistrictSlice";
import gisStationsStatusDistrictReducer from "./slices/webservice/gisStationsStatusDistrictSlice";
import gisStationsMeasurementsReducer from "./slices/webservice/gisStationsMeasurementsSlice";
import gisSystemStaticReducer from "./slices/webservice/gisSystemStaticSlice";
import userRightsReducer from "./slices/webservice/userRightsSlice";
import gisLinesStatusFromWebserviceReducer from "./slices/webservice/gisLinesStatusSlice";
import addPoiReducer from "./slices/database/pois/addPoiSlice";
//-----------------
import mapLayersReducer from "./slices/mapLayersSlice";
import priorityConfigReducer from "./slices/database/priorityConfigSlice";
import locationDevicesFromDBReducer from "./slices/database/locationDevicesFromDBSlice";
import lineVisibilityReducer from "./slices/lineVisibilitySlice";
import selectedDeviceReducer from "./slices/selectedDeviceSlice";
import selectedAreaReducer from "./slices/selectedAreaSlice";
import zoomTriggerReducer from "./slices/zoomTriggerSlice";
import urlParameterReducer from "./slices/urlParameterSlice";
import heapMonitorReducer from "./slices/heapMonitorSlice";
//----------------

export const store = configureStore({
  reducer: {
    gisStationsStaticDistrict: gisStationsStaticDistrictReducer,
    gisStationsStatusDistrict: gisStationsStatusDistrictReducer,
    gisStationsMeasurements: gisStationsMeasurementsReducer,
    gisSystemStatic: gisSystemStaticReducer,
    gisUserRightsFromWebservice: userRightsReducer,
    gisLinesStatusFromWebservice: gisLinesStatusFromWebserviceReducer,
    gisLinesFromDatabase: gisLinesFromDatabaseReducer,
    lineVisibility: lineVisibilityReducer,
    currentPoi: currentPoiReducer,
    polylineLayerVisible: polylineLayerVisibleReducer,
    locationDevicesFromDB: locationDevicesFromDBReducer,
    poiTypes: poiTypesReducer,
    addPoiOnPolyline: addPoiOnPolylineReducer,
    polylineContextMenu: polylineContextMenuReducer,
    selectedPoi: selectedPoiReducer,
    selectedDevice: selectedDeviceReducer,
    mapLayers: mapLayersReducer,
    poiLayerVisible: poiLayerVisibleReducer,
    poiReadFromDbTrigger: poiReadFromDbTriggerReducer,
    polylineEventsDisabled: polylineEventsDisabledReducer,
    readPoiMarkersStore: readPoiMarkersStoreReducer,
    selectedArea: selectedAreaReducer,
    zoomTrigger: zoomTriggerReducer,
    urlParameter: urlParameterReducer,
    priorityConfig: priorityConfigReducer,
    addPoi: addPoiReducer,
    poiTyp: poiTypReducer,
    poiIconsData: poiIconsDataReducer,
    poiMarkers: poiMarkersReducer,
    heapMonitor: heapMonitorReducer,
  },
});
