import { combineReducers } from 'redux'

// external reducers
import { routerReducer } from 'react-router-redux'
import { API_REDUCER_KEY, cosmoApiReducers } from '@lml/cosmo-redux-api'
import { PUSHER_REDUCER_KEY, pusherReducers } from '@lml/cosmo-redux-pusher'
import { createCosmoUiReducersWithTheme, defaultTheme, COSMO_UI_REDUCER_KEY } from 'cosmoui'
import { AUTH_REDUCER_KEY, authReducer } from '@lml/cosmo-ui-auth'

// internal reducers
import { mapReducer, jobsReducer, googleReducer, frequenciesReducer, customersReducer, allocationReducer, trayReducer, httpReducer, consolidationsReducer, couriersReducer } from '@lml/core-ui'
import { loggerReducer } from '../../logger/reducers'

export const rootReducer = combineReducers({
    [COSMO_UI_REDUCER_KEY]: createCosmoUiReducersWithTheme(defaultTheme),
    [API_REDUCER_KEY]: cosmoApiReducers,
    [AUTH_REDUCER_KEY]: authReducer,
    [PUSHER_REDUCER_KEY]: pusherReducers,
    allocation: allocationReducer,
    consolidations: consolidationsReducer,
    couriers: couriersReducer,
    customers: customersReducer,
    frequencies: frequenciesReducer,
    google: googleReducer,
    http: httpReducer,
    jobs: jobsReducer,
    logger: loggerReducer,
    map: mapReducer,
    router: routerReducer,
    tray: trayReducer,
})
