Files
archivdms/internal/storage/migrations/021_title_template.sql
T
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

32 lines
1.7 KiB
SQL

-- PROJ: Titel-Vorlage für Klassifizierungsvorlagen + globaler Tenant-Default
-- Doku-only (siehe README.md in diesem Verzeichnis) — die tatsächliche
-- Ausführung passiert idempotent über die Go-initSchema-Aufrufe:
-- * classification_templates.title_template ->
-- internal/storage/classification_templates.go (*Store).initClassificationTemplatesSchema()
-- * tenants.default_title_template ->
-- internal/tenantstore/store.go (*Store).initSchema()
--
-- Beim Anwenden einer Klassifizierungsvorlage (POST /api/documents/{id}/apply-template
-- ODER Workflow-Aktion apply_classification_template, gemeinsamer Code-Pfad in
-- internal/storage/classification_templates_apply.go ApplyTemplate) wird der
-- Dokumenttitel aus einer Go-text/template-Vorlage abgeleitet:
-- 1. title_template der Vorlage (NULL = keine),
-- 2. sonst tenant-weites default_title_template (NULL = keins),
-- 3. sonst bleibt der bestehende Titel unangetastet.
-- Gesetzt wird NUR wenn documents.title_manually_set = false; title_manually_set
-- bleibt danach false (erneute Anwendung nach späterer Korrektur möglich). Bei
-- leerem/fehlerhaftem Render-Ergebnis Fallback auf den bestehenden Titel, nie
-- leerer String.
--
-- Platzhalter (Struct-Felder): {{.Correspondent}} {{.DocumentType}}
-- {{.Belegdatum}} {{.UploadDate}} {{.Tags}} {{.OCRTitle}}
-- Custom-Func dateFormat "02.01.2006" .Belegdatum (Go-Referenzdatum, leer bei
-- unbekanntem Datum). Validierung: internal/storage/classification_templates_title.go
-- ValidateTitleTemplate (Parse ohne Execute). Tenant-Default max. 500 Zeichen.
ALTER TABLE classification_templates
ADD COLUMN IF NOT EXISTS title_template TEXT;
ALTER TABLE tenants
ADD COLUMN IF NOT EXISTS default_title_template TEXT;