"use client";
import { useGesynchroniseerdeOpslag } from "@/lib/hooks/useGesynchroniseerdeOpslag";
import { alleKantoor, slaKantoorOp, verwijderKantoor, type KantoorRecord } from "@/lib/db/kantoor-db";
import { KANTOOR, type Kantoor } from "@/data/kantoor";

const KANTOOR_ID = "kantoor" as const;

/**
 * Kantoorinstellingen, lokaal in IndexedDB en gesynchroniseerd via
 * /api/sync/kantoor (Supabase) zodat ze kantoorbreed gelden. Zolang er niets
 * bewaard is, geldt de standaard uit data/kantoor.ts (KANTOOR).
 */
export function useKantoor() {
  const { items, geladen, slaOp } = useGesynchroniseerdeOpslag<KantoorRecord>(
    "/api/sync/kantoor",
    alleKantoor,
    slaKantoorOp,
    verwijderKantoor
  );

  const bewaard = items.find((i) => i.id === KANTOOR_ID);
  const kantoor: Kantoor = bewaard ? { ...KANTOOR, ...bewaard } : KANTOOR;

  async function bewaarKantoor(nieuw: Kantoor) {
    await slaOp({ ...nieuw, id: KANTOOR_ID });
  }

  return { kantoor, geladen, bewaarKantoor };
}
