function cartReducer(state={}, {type, good = {}, count=1}){
  //{
  //  _id1: {good, count}
  //  _id2: {good, count}
  //}
  const types = {
    
      CART_ADD(){ //как CHANGE, только если ключ раньше был, то достать из count и добавить
        const {_id} = good;   
                               //к count из action. Если не было, достать 0 и добавить к count из action
        return {
         ...state,
         [_id]:{good, count:count +(state[_id]?.count || 0)}
       }
      },
      CART_MINUS(){ //как CHANGE, только если ключ раньше был, то достать из count и добавить
        const {_id} = good;   
                               //к count из action. Если не было, достать 0 и добавить к count из action
        return {
         ...state,
         [_id]:{good, count: (-count +(state[_id]?.count || 0)) < 1 ? 0: -count +(state[_id]?.count || 0)}
       }
      },
      CART_REMOVE(){ //смочь скопировать объект и выкинуть ключ. как вариант через
                      //деструктуризацию
        const {_id} = good; 
        let newState = {...state};
        const arrKeys = Object.keys(newState);
        for (let key of arrKeys) {
          if(_id === key) {
            delete newState[_id];
          }
        } 
        
        return {
          ... newState,
        }  
      },
      CART_CHANGE(){
        const {_id} = good;
          return {
            ...state, //по аналогии с promiseReducer дописать
            [_id]:{good, count}
          }
      },
      CART_CLEAR(){
      
        return {
          
        };
      },
      AUTH_LOGOUT () {
        localStorage.clear();                          //почистить localStorage
        return {};                                     //вернуть пустой объект
      }
  }

  if (type in types)
      return types[type]()


  return state
}

export default cartReducer;