// store/locationSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import Cookies from "js-cookie";

interface LocationState {
  lat?: number | string;
  lng?: number | string;
  location_description?: string | string;
  isLoading?: boolean;
  id?: string;
}

const initialState: LocationState = {
  lat: "",
  lng: "",
  location_description: "",
  isLoading: true,
  id:""
};

const locationSlice = createSlice({
  name: "location",
  initialState,
  reducers: {
    setLocation: (state, action: PayloadAction<LocationState>) => {
      const { lat, lng, location_description,id, isLoading } = action.payload;
    
      state.lat = lat;
      state.lng = lng;
      state.location_description = location_description;
      state.id = id;
      state.isLoading = isLoading;
    
      const isValid = lat !== null && lng !== null && lat !== undefined && lng !== undefined && location_description?.trim();
    
      if (isValid) {
        Cookies.set("client_location",JSON.stringify({
            lat,
            lng,
            location_description,
            id
          }),
          { expires: 30 }
        );
      }
    }
  },
});

export const { setLocation } = locationSlice.actions;
export default locationSlice.reducer;
