/* eslint new-cap:0 */
import Reflux, {createActions} from 'reflux';
import RefluxPromise from 'reflux-promise';
import _ from 'lodash';

import ContractService from 'services/contractService';

Reflux.use(RefluxPromise(window.Promise));

const apiActions = createActions({
  prepareContract: {children: ['completed', 'failed']},
  refreshContract: {children: ['completed', 'failed']},
  loadContract: {children: ['completed', 'failed']},
  prepareAmendment: {children: ['completed', 'failed']},
  createContract: {children: ['completed', 'failed']},
  updateContract: {children: ['completed', 'failed']},
  createAmendment: {children: ['completed', 'failed']},
});
apiActions.prepareContract.listenAndPromise(ContractService.prepareContract);
apiActions.refreshContract.listenAndPromise(ContractService.refreshContract);
apiActions.loadContract.listenAndPromise(ContractService.getContract);
apiActions.prepareAmendment.listenAndPromise(ContractService.prepareAmendment);

const flatActions = createActions([
  'saveContract',
  'updateContractInfo',
  'updateGeneralOption',
  'updateGeneralOptions',
  'updateDocument',
  'toggleSidebar',
  'expandAll',
import Reflux from 'reflux'
import RefluxPromise from 'reflux-promise'
import Promise from 'bluebird'
Reflux.use(RefluxPromise(Promise))

let AppActions = Reflux.createActions({
  'nav': {asyncResult: true},
  'changeCollectorType': {asyncResult: true},

  // History
  'getHistoryPage': {asyncResult: true},
  'getHistoryCount': {asyncResult: true},
  'getHistoryPageCount': {asyncResult: true},
  'getHistory': {asyncResult: true},
  'setHistoryPageNo': {asyncResult: true},
  'setHistoryPageSize': {asyncResult: true},
  'setHistorySort': {asyncResult: true},
  'setHistoryLoadingFlag': {asyncResult: true},
  'setHistoryPager': {asyncResult: true},
  'setHistorySorter': {asyncResult: true},
  'setHistoryFilters': {asyncResult: true},
  'setHistoryEventIdFilterFocus': {asyncResult: true},
  'setHistoryEventIdFilter': {sync: true},

  // Collecotr
  'getActiveCollectorList': {asyncResult: true},
  'saveActiveCollector': {asyncResult: true},
  'editActiveCollector': {asyncResult: true},
  'setActiveCollector': {sync: true},
  'setActiveCollectorFlag': {asyncResult: true},
  'setActiveCollectorChecklist': {asyncResult: true},