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

const MAX_ITEMS = 10;

interface RecentlyViewedState {
  items: Car[];
  addViewed: (car: Car) => void;
  clear: () => void;
}

export const useRecentlyViewedStore = create<RecentlyViewedState>()(
  persist(
    (set, get) => ({
      items: [],

      addViewed: (car: Car) => {
        const existing = get().items.filter((c) => c.id !== car.id);
        set({ items: [car, ...existing].slice(0, MAX_ITEMS) });
      },

      clear: () => set({ items: [] }),
    }),
    {
      name: "drivehub-recently-viewed",
    }
  )
);
