"use client";
import { create } from "zustand";
import { persist } from "zustand/middleware";
import type { Car } from "@/lib/types";

interface WishlistStore {
  items: Car[];
  add: (car: Car) => void;
  remove: (id: string) => void;
  toggle: (car: Car) => void;
  has: (id: string) => boolean;
  clear: () => void;
}

export const useWishlistStore = create<WishlistStore>()(
  persist(
    (set, get) => ({
      items: [],
      add: (car) => set((s) => s.items.find((c) => c.id === car.id) ? s : { items: [...s.items, car] }),
      remove: (id) => set((s) => ({ items: s.items.filter((c) => c.id !== id) })),
      toggle: (car) => { const s = get(); s.has(car.id) ? s.remove(car.id) : s.add(car); },
      has: (id) => get().items.some((c) => c.id === id),
      clear: () => set({ items: [] }),
    }),
    { name: "drivehub-wishlist" }
  )
);
