// ── AUT-S1 · Extractor: bodemattest (OVAM / Vlaanderen) ──────────────────────
// Leest het refertenummer, de afleveringsdatum en de conclusie/inhoud van een
// bodemattest. Voedt attesten.bodem. De conclusie ("geen gegevens beschikbaar"
// vs. een risicogrond) is juridisch beslissend voor de informatieplicht — bij
// twijfel liever weglaten dan foutief samenvatten.

import type { Brondocument, ExtractorRegistratie, GeextraheerdeWaarneming } from "../perceptie";
import { waarneming, eersteMatch, zoekDatumNaLabel } from "../extractie-hulp";

function extractBodem(doc: Brondocument): GeextraheerdeWaarneming[] {
  const t = doc.tekst;
  const w: GeextraheerdeWaarneming[] = [];

  const referte = eersteMatch(t, [
    /(?:referte(?:nummer)?|referentie|dossiernummer)\s*:?\s*([\w./-]+)/i,
  ]);
  if (referte) w.push(waarneming(doc, "attesten.bodem.refertenummer", referte, "zeker"));

  const datum = zoekDatumNaLabel(t, [
    /(?:datum\s+aflevering|afgeleverd op|datum)\s*:?\s*(.+)/i,
  ]);
  if (datum) w.push(waarneming(doc, "attesten.bodem.datum", datum, "zeker"));

  const inhoud = eersteMatch(t, [
    /(?:inhoud van het attest|conclusie|besluit)\s*:?\s*([^\n]+)/i,
    /(geen\s+gegevens\s+beschikbaar[^\n]*)/i,
  ]);
  if (inhoud) w.push(waarneming(doc, "attesten.bodem.inhoud", inhoud, "waarschijnlijk"));

  return w;
}

export const bodemExtractors: ExtractorRegistratie[] = [
  { bronType: "bodemattest", extractor: extractBodem },
];
