Notifications Modul
Zweck
Das Notifications Modul bietet ein zentrales Benachrichtigungssystem für alle wichtigen Ereignisse: Schicht-Bewerbungen, Zeiterfassungs-Genehmigungen, Einladungen, System-Updates. Es unterstützt einstellbare Benachrichtigungstypen und E-Mail-Versand.
Verantwortlichkeiten
Was gehört zum Modul
- Benachrichtigungen erstellen: Automatische Benachrichtigungen bei Events
- Benachrichtigungen anzeigen: Übersicht aller Benachrichtigungen
- Benachrichtigungen markieren: Als gelesen markieren
- E-Mail-Versand: Optionale E-Mail-Benachrichtigungen
- Benachrichtigungs-Typen: Verschiedene Typen (Info, Warning, Error, Success)
Was gehört nicht zum Modul
- Event-Erstellung: Events werden von anderen Modulen erstellt
- E-Mail-Konfiguration: Siehe Core E-Mail-Service
Implementierung
Backend- und Frontend-API sind modular aufgebaut; Details siehe interne Entwickler-Dokumentation.
Konfiguration
Entitlement
Das Modul ist ein Core-Modul und erfordert kein spezielles Entitlement. Es ist immer aktiv.
Entitlement-Key: Keiner (Core-Modul)
Environment Variables
Keine modulspezifischen ENV-Variablen erforderlich.
Defaults
- Standard-Limit: 50 Benachrichtigungen
- Maximales Limit: 200 Benachrichtigungen
Abhängigkeiten
Optionale Abhängigkeiten
Keine.
Core-Abhängigkeiten
Keine.
API-Endpoints
Authentifizierung
Alle Endpoints erfordern Authentifizierung. Zwei Methoden werden unterstützt:
- Firebase ID Token (Standard für Web-App)
- API-Token (für externe Nutzung)
Header: Authorization: Bearer <token>
Benachrichtigungen abrufen
GET /api/notifications?limit=50&unreadOnly=false
Lädt Benachrichtigungen des aktuellen Users.
Query-Parameter:
- limit (optional): Maximale Anzahl (Standard: 50, Maximum: 200)
- unreadOnly (optional): Nur ungelesene (Standard: false)
Response:
{
"notifications": [
{
"id": "notif123",
"type": "info",
"title": "Neue Bewerbung",
"message": "Max Mustermann hat sich auf Schicht #456 beworben",
"read": false,
"createdAt": "2024-01-15T10:00:00Z"
}
],
"count": 1
}
Ungelesene Anzahl abrufen
GET /api/notifications/unread-count
Gibt die Anzahl ungelesener Benachrichtigungen zurück.
Response:
Als gelesen markieren
POST /api/notifications/:notificationId/read
Markiert eine Benachrichtigung als gelesen.
Alle als gelesen markieren
POST /api/notifications/read-all
Markiert alle Benachrichtigungen als gelesen.
Benachrichtigung löschen
DELETE /api/notifications/:notificationId
Löscht eine Benachrichtigung.
Wird dokumentiert: Detaillierte API-Endpunkt-Dokumentation folgt.
Firestore Collections
Notifications
Pfad: /tenants/{tenantId}/notifications/{notificationId}
{
uid: string; // Empfänger UID
type: 'info' | 'warning' | 'error' | 'success';
title: string;
message: string;
read: boolean;
link?: string; // Optional: Link zur zugehörigen Seite
metadata?: Record<string, unknown>; // Zusätzliche Daten
createdAt: Timestamp;
readAt?: Timestamp;
}
Wird dokumentiert: Detaillierte Datenbank-Struktur folgt.
Fehlerfälle
HTTP-Status-Codes
- 200 OK: Erfolgreich
- 400 Bad Request: Validierungsfehler
- 401 Unauthorized: Nicht authentifiziert
- 403 Forbidden: Keine Berechtigung
- 404 Not Found: Ressource nicht gefunden
- 500 Internal Server Error: Server-Fehler
Fehlercodes
Wird dokumentiert: Detaillierte Fehlercodes folgen.
FAQ / Troubleshooting
Wird dokumentiert: Häufige Fragen und Lösungen folgen.