import {
  createSelector,
  createFeatureSelector,
  ActionReducerMap,
} from '@ngrx/store';

import { StateSelector } from '@overflow/core/ngrx/store';

import { MODULE } from '../sensor.constant';

import * as SensorEntityStore from './entity/sensor';

export interface State {
  sensor: SensorEntityStore.State;
}

export const REDUCERS = {
  sensor: SensorEntityStore.reducer,
};

export const EFFECTS = [
  SensorEntityStore.Effects,
];

export const selectState = createFeatureSelector<State>(MODULE.name);

export const SensorEntitySelector = SensorEntityStore.getSelectors(createSelector(
  selectState,
  (state: State) => state.sensor
));

export const SensorPageSelector = createSelector(
  selectState,
  (state: State) => state.sensor.page
);