import { createSlice, PayloadAction } from "@reduxjs/toolkit";

export interface LeadFilterState {
  leadStages: string[];
  project: string[];
  searchQuery: string;
  orphanLeads: boolean;
  interest: string[];
  source: string[];
  category: string[];
  subcategory: string[];
  configuration: string[];
  user: string[];
  activityCount: string;
}

const initialState: LeadFilterState = {
  leadStages: [],
  project: [],
  searchQuery: "",
  orphanLeads: false,
  interest: [],
  source: [],
  category: [],
  subcategory: [],
  configuration: [],
  user: [],
  activityCount: "any",
};

const leadFilterSlice = createSlice({
  name: "leadFilters",
  initialState,
  reducers: {
    setLeadFilters: (
      state,
      action: PayloadAction<Partial<LeadFilterState>>,
    ) => {
      return { ...state, ...action.payload };
    },
    resetLeadFilters: () => {
      return initialState;
    },
  },
});

export const { setLeadFilters, resetLeadFilters } = leadFilterSlice.actions;
export default leadFilterSlice.reducer;
