Beschreibung
Wenn ein neues Dokument über die Paperless-ngx E-Mail-Verarbeitung importiert und von der Workmate-KI analysiert wurde, soll eine Push-Notification an die App gesendet werden.
Kontext
- Paperless-ngx verarbeitet E-Mails via IMAP (3 Konten konfiguriert)
- Workmate synct alle 30 Min via Celery (
paperless_sync-Task), 48h Lookback
- Nach dem Import läuft
analyze_paperless_document (Celery-Task in paperless_analyze.py)
- FCM Push-Service existiert bereits:
backend/app/services/push_notification_service.py
Gewünschtes Verhalten
Nach Abschluss der KI-Analyse (processing_status = "done") soll eine Push-Notification versendet werden:
- Titel:
📄 Neues Dokument
- Body:
{Dokumenttitel} ({KI-Typ}) — z. B. Hetzner Rechnung Juli (Rechnung)
- Bei
action_required=True: Body erweitern mit ⚠️ Handlungsbedarf
- Data-Payload:
{"type": "new_document", "document_id": "<uuid>", "paperless_id": "<id>"}
Implementierung
- In
analyze_paperless_document (nach doc.processing_status = "done" und Commit) FCM-Notification abfeuern
- FCM-Token des Users aus
user.ui_preferences["fcm_token"] lesen (oder aus eigenem User-Feld, falls vorhanden)
PushNotificationService.send() aufrufen
- Fehler nur loggen, nicht werfen (Notification ist nicht kritisch)
Flutter-seitig (optional, separates Issue)
- Deep-Link beim Tap auf Notification → Dokumentdetailseite öffnen
document_id aus dem FCM-Data-Payload nutzen
Beschreibung
Wenn ein neues Dokument über die Paperless-ngx E-Mail-Verarbeitung importiert und von der Workmate-KI analysiert wurde, soll eine Push-Notification an die App gesendet werden.
Kontext
paperless_sync-Task), 48h Lookbackanalyze_paperless_document(Celery-Task inpaperless_analyze.py)backend/app/services/push_notification_service.pyGewünschtes Verhalten
Nach Abschluss der KI-Analyse (
processing_status = "done") soll eine Push-Notification versendet werden:📄 Neues Dokument{Dokumenttitel} ({KI-Typ})— z. B.Hetzner Rechnung Juli (Rechnung)action_required=True: Body erweitern mit⚠️ Handlungsbedarf{"type": "new_document", "document_id": "<uuid>", "paperless_id": "<id>"}Implementierung
analyze_paperless_document(nachdoc.processing_status = "done"und Commit) FCM-Notification abfeuernuser.ui_preferences["fcm_token"]lesen (oder aus eigenem User-Feld, falls vorhanden)PushNotificationService.send()aufrufenFlutter-seitig (optional, separates Issue)
document_idaus dem FCM-Data-Payload nutzen