Zum Hauptinhalt springen

Standort — Kontakte (Sub-Route)

Zweck

Sub-Route /locations/:id/contacts listet alle Kontakte am Standort — typische Inhalte: Hausmeister, Sicherheitsbeauftragte, Schluesselverwalter. Verknuepfung über ContactParent mit parentType = Location. Identisch zum Kunden-Pattern.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_Location, LocationDetail
view/createContact, ContactParentPflegenAPP_SPEAMCORE_VIEW/CREATE_CONTACT, CONTACT_PARENT

Schritt-für-Schritt-Anleitung

  1. Standort (/locations/:id) → Tab Kontakte.
  2. + Neu legt Contact plus ContactParent mit parentType = Location an.

Anlege-Pattern (Code-Lookup-basiert)

Identisch zu Kunden-Kontakte — beim Klick auf + Neu öffnet ein ContactButton-Workflow:

  • Neuen Kontakt anlegen → erzeugt Contact + ContactParent mit parentType = Location, parentId = :locId.
  • Bestehenden Kontakt verknuepfen → erzeugt nur einen neuen ContactParent-Eintrag, der auf einen bestehenden Kontakt zeigt. Ein Kontakt kann gleichzeitig Standort UND Kunde betreuen.
Wichtig: Standort-Kontakte **vererben** keine Kunden-Kontakte. Wenn der Kunde einen Geschaeftsfuehrer hat, der auch für alle Standorte gilt, muss er pro Standort separat verknuepft werden (oder via Kunden-Kontakt-Auswahl).

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/contacts?filter[parentType=Location]Listeview Contact

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.