"use client";
import { getModeldocumentenDb } from "@/lib/db/modeldocumenten-db";
import { useGesynchroniseerdeOpslag } from "@/lib/hooks/useGesynchroniseerdeOpslag";
import type { OnderdeelHistoriek } from "@/data/modeldocumenten";

async function lokaalLezen(): Promise<OnderdeelHistoriek[]> {
  const db = await getModeldocumentenDb();
  return db.getAll("onderdelenHistorie");
}
async function lokaalSchrijven(item: OnderdeelHistoriek): Promise<void> {
  const db = await getModeldocumentenDb();
  await db.put("onderdelenHistorie", item);
}
async function lokaalVerwijderen(id: string): Promise<void> {
  const db = await getModeldocumentenDb();
  await db.delete("onderdelenHistorie", id);
}

/** Versiehistoriek van eigen modelonderdelen, één record per onderdeel-id. */
export function useOnderdeelHistoriekStorage() {
  const { items, geladen, slaOp, verwijder } = useGesynchroniseerdeOpslag<OnderdeelHistoriek>(
    "/api/sync/modeldocumenten-onderdelen-historiek",
    lokaalLezen,
    lokaalSchrijven,
    lokaalVerwijderen
  );

  return { historiek: items, historiekGeladen: geladen, slaHistoriekOp: slaOp, verwijderHistoriek: verwijder };
}
