Manuelle Alerts / Reminder
ID: PA-003 · Service: push-alerts · Status: 🟢 aktiv · Use Case: UC-PA-003
Benutzer können selbst Push-Nachrichten mit Zeitpunkt, Titel und optionalem Text erstellen. Der Scheduler sendet die Nachricht zum konfigurierten Zeitpunkt. Typische Anwendungsfälle: Erinnerungen, selbst gesetzte Deadlines, kontextbezogene Notizen mit Zeitbezug.
Typ
functional
Datenmodell
Typ: manual
Felder
| Feld | Wert |
|---|---|
| Titel | Pflichtfeld, max. 100 Zeichen |
| Body | Optional, max. 300 Zeichen |
| Schedule At | Pflichtfeld, Zeitstempel in der Zukunft (UTC) |
| Url | Optional, Ziel-URL beim Klick (relativ zur PWA-Basis) |
| Active | bool (false nach Versand oder manueller Löschung) |
API
Endpoints
Eintrag 1
Methode: POST
Path: /api/alerts/reminders
Beschreibung: Neuen Reminder erstellen
Auth: required
Body
| Feld | Wert |
|---|---|
| Titel | string (required) |
| Body | string (optional) |
| Schedule At | datetime ISO 8601 (required, must be future) |
| Url | string (optional) |
Antwort
| Feld | Wert |
|---|---|
| ID | int |
| Titel | string |
| Schedule At | datetime |
| Active | bool |
Eintrag 2
| Feld | Wert |
|---|---|
| Methode | GET |
| Path | /api/alerts/reminders |
| Beschreibung | Alle offenen Reminder des Benutzers auflisten |
| Auth | required |
| Filter | nur active=true und schedule_at in der Zukunft |
Eintrag 3
| Feld | Wert |
|---|---|
| Methode | DELETE |
| Path | /api/alerts/reminders/{id} |
| Beschreibung | Reminder löschen (nur eigene, nur wenn noch nicht gesendet) |
| Auth | required |
Scheduling
| Feld | Wert |
|---|---|
| Beschreibung | Der Scheduler prüft jede Minute alle Reminder mit schedule_at <= now() und active=true. Für jeden gefundenen Reminder wird die Push-Nachricht an alle aktiven Subscriptions des Benutzers gesendet. |
| Cron-Ausdruck | * * * * * |
| Nach Versand | active = false, Eintrag in alert_history |
Validierung
- schedule_at muss in der Zukunft liegen (min. 1 Minute)
- title darf nicht leer sein
- Benutzer muss aktive Subscription haben (Warnung, kein Fehler beim Anlegen)
Frontend
Formular
Felder
- Titel (Textfeld)
- Text / Notiz (Textarea, optional)
- Datum (Date Picker)
- Uhrzeit (Time Picker)
- Link / Zielseite (Dropdown oder Freitext, optional)
Aktion: Speichern → Bestätigung mit Datum/Uhrzeit der Erinnerung
Abnahmekriterien
- [ ] Reminder mit Zeitpunkt in der Vergangenheit wird abgelehnt (HTTP 422)
- [ ] Push-Nachricht wird zum konfigurierten Zeitpunkt (±1 Minute) gesendet
- [ ] Nach Versand ist der Reminder in der Liste nicht mehr sichtbar (active=false)
- [ ] Benutzer kann offene Reminder löschen (solange noch nicht gesendet)
- [ ] Versand wird in alert_history protokolliert
Depends On
- PA-001
- AUTH-001
Changelog
Eintrag 1
Version: 1.0
Changes: Initiale Version