import { createSlice } from '@reduxjs/toolkit';

interface Pagination {
  total:number;
  count:number;
  per_page:number;
  current_page:number;
  total_pages:number;
  from:number;
  to:number;
}

const initialState = {
    products:[],
    filteredProducts:[],
    categories: ['64b54ce5557a8f6b820695a2'],
    subcategories: [], //use
    brands: [],
    favorites:[],
    variations:[],
    orders:[],
    pagination:<Pagination>{},
    featuredpagination:<Pagination>{}
    // defaultCategory:""
    // priceRange: { min: 0, max: 100 },
};

const productFiltersSlice = createSlice({
  name: 'productFilters',
  initialState,
  reducers: {
    setSubCategories: (state, action) => {
      state.subcategories = action.payload;
    },
    setProducts: (state, action) => {
      state.products = action.payload;
    },
    setFilteredProducts: (state, action) => {
      state.filteredProducts = action.payload;
    },
    setBrands: (state, action) => {
      state.brands = action.payload;
    },
    setFavorites:(state,action) => {
      state.favorites = action.payload
    },
    setVariations:(state,action) => {
      state.variations = action.payload
    },
    setOrders:(state,action) => {
      state.orders = action.payload
    },
    setPagination:(state,action) => {
      state.pagination = action.payload
    },
    setFeaturedPagination:(state,action) => {
      state.featuredpagination = action.payload
    }
    // setPriceRange: (state, action) => {
    //   state.priceRange = action.payload;
    // },
  },
});

export const { 
  setSubCategories, 
  setBrands , 
  setProducts ,
  setFilteredProducts ,
  setFavorites, 
  setVariations,
  setOrders,
  setPagination,
  setFeaturedPagination
} = productFiltersSlice.actions;

export default productFiltersSlice.reducer;
