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)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_Location, Location | Detail | — |
view/create | Contact, ContactParent | Pflegen | APP_SPEAMCORE_VIEW/CREATE_CONTACT, CONTACT_PARENT |
Schritt-für-Schritt-Anleitung
- Standort (
/locations/:id) → Tab Kontakte. - + Neu legt
ContactplusContactParentmitparentType = Locationan.
Anlege-Pattern (Code-Lookup-basiert)
Identisch zu Kunden-Kontakte — beim Klick auf + Neu öffnet ein ContactButton-Workflow:
- Neuen Kontakt anlegen → erzeugt
Contact+ContactParentmitparentType = 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.
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/contacts?filter[parentType=Location] | Liste | view Contact |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.