Zum Hauptinhalt springen

QR-Link-Templates

Zweck

QrLinkTemplate modelliert wiederverwendbare Style-Vorlagen für QR-Links. Statt für jeden neuen Link Punkte, Ecken, Farben, Hintergrund und Logo-Größe einzeln zu pflegen, lässt sich ein Template einmal definieren und anschließend per Klick auf einen QR-Link anwenden.

Zwei Scopes sind möglich:

ScopeSichtbar fürUse-Case
privatenur den Ersteller (ownerEmployeeId)Persönliche Style-Experimente, Entwurfs-Templates
tenantalle Mitarbeiter des MandantenCorporate Templates (Sommer-Kampagne, Standard-Logo-Variante)

Voraussetzungen

- Berechtigung `view:QrLinkTemplate`. - Für Anlage/Änderung/Löschung: `create`/`update`/`delete:QrLinkTemplate`. - `view:FE_QrLink` (das FE-Modul liegt unter dem QR-Link-Cluster).

Berechtigungen (CASL)

ActionSubjectWirkung
viewQrLinkTemplateListe + Detail aufrufbar (Scope-Filter greift)
createQrLinkTemplateNeues Template anlegen
updateQrLinkTemplateFelder + Style ändern
deleteQrLinkTemplateSoft-Delete; bestehende QR-Links behalten ihren Style (Snapshot im styleJson)

Der Scope-Filter läuft im Backend über die restrictTemplatesToOwnOrTenant()-Middleware:

sichtbar wenn:
scope = 'tenant'
OR
scope = 'private' AND ownerEmployeeId = currentEmployee

Datenmodell

FeldPflichtTypWirkung
namejaString (255)Anzeigename im Picker
descriptionneinTEXTErläuterung (z. B. „Brand-konform 2026 – mit Sommer-Logo")
scopejaENUM (private, tenant)Sichtbarkeits-Bereich. Default: private.
ownerEmployeeIdautoUUID → EmployeeErsteller — auch bei tenant-Templates als Audit-Spur
styleJsonjaJSON (QrStyleConfig)Vollständiger Style-Block, identisch zum QR-Link-Modul
sequenceIdautoIntegerLesbare Nummer
createdAt, updatedAt, deletedAtautoDateTimeStandard + Soft-Delete

Schritt-für-Schritt-Anleitung

Das Modul-Detail eines QR-Links bietet keinen direkten „Als Template speichern"-Button — Anlage läuft separat:

  1. QR-Link-Templates (/qr-link-templates) öffnen → + Hinzufügen.
  2. Name und ggf. Beschreibung pflegen.
  3. Scope wählen — private für persönliche Tests, tenant für Corporate-Templates (Achtung: einmal tenant, sehen alle Mitarbeiter das Template).
  4. Style-Felder pflegen (identisch zum QR-Link-Editor — Punkt-/Eck-Stil, Farben, Hintergrund, Logo-Anteil).
  5. Speichern → Template steht im QR-Link-Editor unter Template anwenden zur Auswahl.
  1. Im QR-Link-Editor das Dropdown Template öffnen.
  2. Gewünschtes Template wählen → Anwenden klicken.
  3. Style-Felder werden aus dem Template übernommen, templateId wird zur Audit-Referenz gespeichert.
  4. Änderungen am QR-Link betreffen nur diesen Link — das Template bleibt unverändert.

Template ändern

Update eines Templates hat keinen Effekt auf bereits angewandte QR-Links — diese halten ihren eigenen styleJson-Snapshot. Neu angelegte QR-Links erben hingegen den neuen Style.

Verknüpfungen zu anderen Modulen

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/qr-link-templatesListe (Scope-Filter automatisch)view QrLinkTemplate
POST/api/qr-link-templatesAnlegencreate QrLinkTemplate
GET/api/qr-link-templates/:idDetailview QrLinkTemplate
PATCH/api/qr-link-templates/:idUpdateupdate QrLinkTemplate
DELETE/api/qr-link-templates/:idSoft-Deletedelete QrLinkTemplate

Häufige Fehler und Lösungen

FehlerLösung
Template fehlt im PickerScope ist private und der Ersteller ist nicht der aktuelle User. Owner umstellen oder Scope auf tenant setzen (Achtung: Sichtbarkeit für alle).
Template ändert vorhandene QR-Links nichtKorrekt — das styleJson wird als Snapshot in den QR-Link kopiert. Template-Updates wirken nur auf neue Anwendungen.
Soft-Delete entfernt das Template aus dem PickerKorrekt. Bestehende QR-Links bleiben unberührt (Snapshot).

Versionshinweise

  • 2026-05-20 (Welle 130): Initiale Veröffentlichung. Quelle: BE-Modell qrLinkTemplate.model.ts, Router qrLinkTemplate.router.ts (157 Z.), Migration 20260519110004-initial-qr-link-template-model.js. Scope-Constraint via restrictTemplatesToOwnOrTenant()-Middleware.