import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { Company } from "../api/companyApi";
import { User } from "../api/userApi";

interface CompanyState {
  currentCompany: Company | null;
  currentUser: User | null;
  isLoading: boolean;
}

const initialState: CompanyState = {
  currentCompany: null,
  currentUser: null,
  isLoading: false,
};

const companySlice = createSlice({
  name: "company",
  initialState,
  reducers: {
    setCompany: (state, action: PayloadAction<Company | null>) => {
      state.currentCompany = action.payload;
    },
    setUser: (state, action: PayloadAction<User | null>) => {
      state.currentUser = action.payload;
    },
    setLoading: (state, action: PayloadAction<boolean>) => {
      state.isLoading = action.payload;
    },
    clearCompany: (state) => {
      state.currentCompany = null;
      state.currentUser = null;
    },
  },
});

export const { setCompany, setUser, setLoading, clearCompany } =
  companySlice.actions;
export default companySlice.reducer;

