-- 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;