import { create } from "zustand";
import type { Car } from "@/lib/types";

interface CarStore {
  compareList: Car[];
  addToCompare: (car: Car) => void;
  removeFromCompare: (id: string) => void;
  clearCompare: () => void;
}

export const useCarStore = create<CarStore>((set) => ({
  compareList: [],
  addToCompare: (car) =>
    set((s) => {
      if (s.compareList.length >= 4 || s.compareList.find((c) => c.id === car.id)) return s;
      return { compareList: [...s.compareList, car] };
    }),
  removeFromCompare: (id) =>
    set((s) => ({ compareList: s.compareList.filter((c) => c.id !== id) })),
  clearCompare: () => set({ compareList: [] }),
}));
