/**
 * React Native Full App (https://store.enappd.com/product/react-native-full-app)
 *
 * Copyright © 2019-present Enappd. All rights reserved.
 *
 * This source code is licensed as per the terms found in the
 * LICENSE.md file in the root directory of this source tree.
 */
export const GET_CART_PRODUCTS = 'GET_CART_PRODUCTS';
export const ADD_TO_CART = 'ADD_TO_CART';
export const REMOVE_FROM_CART = 'REMOVE_FROM_CART';
export const REDUCE_QUANTITY = 'REDUCE_QUANTITY';
export const RAISE_QUANTITY = 'RAISE_QUANTITY';
export const TOTAL_CART_VALUE = 'TOTAL_CART_VALUE';
export const CLEAR_CART = 'CLEAR_CART';
export const QUANTITY_UPDATE = 'QUANTITY_UPDATE';



interface GetCartProductsDispatchAction {
    type: typeof GET_CART_PRODUCTS
    payload: Array<any>
}
interface AddToCartDispatchAction {
    type: typeof ADD_TO_CART
    payload: Array<any>
}
interface RemoveFromCartDispatchAction {
    type: typeof REMOVE_FROM_CART
    payload: Array<any>
}
interface ReduceQuantityDispatchAction {
    type: typeof REDUCE_QUANTITY
    payload: Array<any>
}
interface RaiseQuantityDispatchAction {
    type: typeof RAISE_QUANTITY
    payload: Array<any>
}
interface TotalCartValueDispatchAction {
    type: typeof TOTAL_CART_VALUE
    payload: number
}
interface ClearCartDispatchAction {
    type: typeof CLEAR_CART
}
interface UpdateQuntityDispatchAction {
    type: typeof QUANTITY_UPDATE
    payload: {[key:string]:number}
}

export type CartActionTypes = GetCartProductsDispatchAction | AddToCartDispatchAction | RemoveFromCartDispatchAction | ReduceQuantityDispatchAction | RaiseQuantityDispatchAction | TotalCartValueDispatchAction | ClearCartDispatchAction | UpdateQuntityDispatchAction;