-- PROJ: Beleg-/Dokumentdatum (document_date) aus dem OCR-Text
-- Doku-only (siehe README.md in diesem Verzeichnis) — die tatsächliche
-- Ausführung passiert idempotent über
-- internal/storage/documents.go (*Store).initSchema().
--
-- Bisher wurde der WORM-Ablagepfad store/<tenant>/<yyyy>/<mm>/<hash>.<ext>
-- aus dem Scan-/Upload-Zeitpunkt (time.Now()) gebildet. Neu wird beim Upload
-- versucht, das echte Belegdatum (Rechnungs-/Dokumentdatum) aus dem OCR-Text
-- zu erkennen (extractDocumentDate in internal/api/date_extraction.go,
-- Regex-basiert: DD.MM.YYYY, DD.MM.YY, YYYY-MM-DD). Wird ein plausibles Datum
-- gefunden, bestimmt dessen Jahr/Monat den Ablagepfad; sonst Fallback auf den
-- Scan-Zeitpunkt wie bisher.
--
-- created_at bleibt unverändert der unveränderliche Scan-/Upload-Zeitstempel
-- (GoBD-Nachvollziehbarkeit). document_date ist ein SEPARATES, nullbares
-- Metadatenfeld: NULL bei Altbeständen und wenn kein Datum erkannt wurde.
--
-- Reprocess (POST /api/documents/{id}/reprocess) aktualisiert bei erneuter
-- OCR-Verarbeitung nur dieses Feld — die bereits WORM-gesperrte Datei und ihr
-- Ablagepfad werden NIEMALS nachträglich verschoben.

ALTER TABLE documents
    ADD COLUMN IF NOT EXISTS document_date DATE;
