import { CartInformationModal } from "@/lib/types/models/shopping-cart";
import { create } from "zustand";

type CartState = {
  cartItems: CartInformationModal[];
  shopLaterCartItems: CartInformationModal[];
  isLoading: boolean;
  error: string | null;
};

type CartActions = {
  setCartItems: (data: CartInformationModal[]) => void;
  setShopLaterCartItems: (data: CartInformationModal[]) => void;
  setLoading: (loading: boolean) => void;
  setError: (error: string | null) => void;
};

export const useCartStore = create<CartState & CartActions>((set) => ({
  // Initial state
  cartItems: [],
  shopLaterCartItems: [],
  isLoading: false,
  error: null,

  // Actions
  setCartItems: (data) => set({ cartItems: data }),
  setShopLaterCartItems: (data) => set({ shopLaterCartItems: data }),
  setLoading: (loading) => set({ isLoading: loading }),
  setError: (error) => set({ error }),
}));
