Files
archivdms/internal/storage/migrations/012_metadata_suggestions.sql
patrick 9a24ea29e1 FDN-01: repository & projektgerüst
Git-Repository für bestehenden archivdms-Code initialisiert, Branch-/Commit-Konvention (feature/<ticket>-<slug>-Branches, Ticket-Prefix in Commit-Nachricht) etabliert.
2026-08-11 21:27:53 +02:00

34 lines
1.7 KiB
SQL

-- PROJ: heuristische Metadaten-Vorschläge
-- Doku-only (siehe README.md in diesem Verzeichnis) — die tatsächliche
-- Ausführung passiert idempotent über
-- internal/storage/metadata_suggestions.go initMetadataSuggestionsSchema(),
-- aufgerufen aus (*Store).initSchema() NACH dem documents-/taxonomy-Schema
-- (die Vorschläge scoren Taxonomie-Entitäten gegen ein Dokument).
--
-- Metadaten-Vorschläge: regelbasiert (KEIN LLM). Pro Vorschlags-Lauf wird ein
-- Dokument gegen alle Taxonomie-Entitäten (Tags/Dokumenttypen/Korrespondenten)
-- fuzzy-gescored; Near-Misses oberhalb einer Schwelle (suggestionFloor), die
-- noch NICHT zugewiesen sind, werden als nicht-bindende Kandidaten vorgeschlagen.
-- Sieht der aktuelle Titel noch auto-generiert aus, wird zusätzlich ein
-- neu abgeleiteter Titel vorgeschlagen.
--
-- Diese Tabelle ist NUR ein Log/Cache dessen, was der heuristische Provider
-- vorgeschlagen hat. Das Anwenden eines akzeptierten Feldes läuft über die
-- normalen Edit-Endpunkte (PATCH title, tag-attach, ...), NIEMALS über diese
-- Zeile. status wird beim Review ('reviewed') gesetzt, unabhängig davon welche
-- Felder der Nutzer übernommen hat.
CREATE TABLE IF NOT EXISTS metadata_suggestions (
id BIGSERIAL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
document_id BIGINT NOT NULL,
provider TEXT NOT NULL DEFAULT 'heuristic',
requested_by BIGINT,
requested_at TIMESTAMPTZ NOT NULL DEFAULT now(),
suggestion JSONB NOT NULL,
status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending','reviewed')),
reviewed_at TIMESTAMPTZ,
reviewed_by BIGINT
);
CREATE INDEX IF NOT EXISTS idx_metadata_suggestions_document ON metadata_suggestions(document_id);