import { create } from "zustand";
import { getAllDataApi } from "../services/masterDataApi";

interface MasterDataState {
  masterData: any;
  loading: boolean;
  error: string | null;

  fetchMasterData: () => Promise<void>;
}

export const useMasterDataStore = create<MasterDataState>((set) => ({
  masterData: null,
  loading: false,
  error: null,

  fetchMasterData: async () => {
    try {
      set({
        loading: true,
        error: null,
      });

      const response = await getAllDataApi();

      set({
        masterData: response?.data || {},
        loading: false,
      });
    } catch (error: any) {
      set({
        loading: false,
        error:
          error?.response?.data?.msg ||
          error?.message ||
          "Failed to fetch data",
      });
    }
  },
}));