import { query } from '../services/product';
import modelExtend from 'dva-model-extend';
import queryString from 'query-string';
import { pageModel } from './common';
import { pageSize } from '../utils/config';
import { checkSearchParams } from '../utils/utils';
import { Codes } from '../utils/config';

export default modelExtend(pageModel, {
  namespace: 'product',

  state: { listLoading: false },

  effects: {
    * query ({ payload = {} }, { call, put }) {
      yield put({ type: 'changeLoading', payload: { listLoading: true }});
      const { data, success } = yield call(query, payload);
      if (success) {
        yield put({
          type: 'querySuccess',
          payload: {
            list: data.list,
            pagination: {
              current: Number(payload.pageNo) || 1,
              pageSize: Number(payload.pageSize) || pageSize,
              total: data.totalSize,
            }
          }
        });
      }
      yield put({ type: 'changeLoading', payload: { listLoading: false }});
    },
  },

  reducers: {
    changeLoading(state, action) {
      return { ...state, ...action.payload };
    },
  }
})