Files
nexarch/dms/internal/tag
patrickandClaude Sonnet 5 c7652e91e5 MET-01: Tag-Modell & Tag-API (Farbe, Hierarchie, Zusammenfuehren)
Migration 0007 ergaenzt tags.color/parent_tag_id (Ticket-Auftrag: Farbe
und optionale Hierarchie - FDN-02 legte nur die flache Entitaet an).

internal/tag: Create/Rename/Get/ListAll/ListForDocument/Assign/Unassign/
BulkAssign/Delete/Merge. Listen-Funktionen liefern grundsaetzlich []
statt nil (siehe "Bekannte Fehler vermeiden"). Merge uebertraegt alle
Zuordnungen des Quell-Tags auf den Ziel-Tag (ON CONFLICT DO NOTHING nur
gegen doppelte Kombinationen, keine Zuordnung geht verloren) und loescht
den Quell-Tag. Loeschen eines Tags entfernt ueber ON DELETE CASCADE nur
die document_tags-Zeilen, nie das Dokument selbst.

Pruefungen:
1. Zusammenfuehren erhaelt alle Zuordnungen, auch bei vorheriger
   Doppelzuordnung eines Dokuments
2. Doppelte Tag-Namen verhindert (Anlegen UND Umbenennen)
3. Massenzuweisung an 500 Dokumente: 14,4ms (Budget 2s) ueber ein
   einziges INSERT...SELECT unnest(...)-Statement

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 20:37:32 +02:00
..