import { CategoryMenuItem } from "@/lib/types/models/category";
import { create } from "zustand";

type CategoryState = {
  categories: CategoryMenuItem[];
  isLoading: boolean;
  error: string | null;
};

type CategoryActions = {
  setCategories: (data: CategoryMenuItem[]) => void;
  setLoading: (loading: boolean) => void;
  setError: (error: string | null) => void;
};

export const useCategoryStore = create<CategoryState & CategoryActions>(
  (set) => ({
    // Initial state
    categories: [],
    isLoading: false,
    error: null,

    // Actions
    setCategories: (data) => set({ categories: data }),
    setLoading: (loading) => set({ isLoading: loading }),
    setError: (error) => set({ error }),
  })
);
