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

interface ForgetPasswordData {
  email?: any;
  verification_token?: any;
  phone?: any;
  phone_code?: any;
  [key: string]: any;
}

interface ForgetState {
  storedValues: ForgetPasswordData | null;
  isLoading: boolean;
  error: string | null;
}

const initialState: ForgetState = {
  storedValues: null,
  isLoading: false,
  error: null,
};

const forgetSlice = createSlice({
  name: "forget",
  initialState,
  reducers: {
    setForgetPasswordData: (
      state,
      action: PayloadAction<ForgetPasswordData>,
    ) => {
      state.storedValues = { ...state.storedValues, ...action.payload };
    },
    setLoading: (state, action: PayloadAction<boolean>) => {
      state.isLoading = action.payload;
    },
    setError: (state, action: PayloadAction<string | null>) => {
      state.error = action.payload;
    },
    clearForgetData: (state) => {
      state.storedValues = null;
      state.error = null;
      state.isLoading = false;
    },
  },
});

export const { setForgetPasswordData, setLoading, setError, clearForgetData } =
  forgetSlice.actions;

// Keep backward compatibility
export const addForgetPassword = setForgetPasswordData;

export default forgetSlice.reducer;
