wg-verwaltung/backend
bernd 762e17a864 Wire up OneSignal push delivery: register endpoint + reminder jobs
sendPushNotification() (services/notificationService.ts) already called
the real OneSignal API correctly, but two things made it unreachable:
no endpoint ever set User.pushToken, and no job existed for the two
push-based requirements beyond rent dunning — cleaning check-in
reminders and the trash-calendar evening push. Both CleaningTask and
TrashSchedule already had an unused `reminderSentAt` column, so the
schema anticipated this and was just never wired up.

- PUT /v1/auth/push-token: registers the current device's OneSignal
  Player ID.
- jobs/cleaningReminderJob.ts, jobs/trashReminderJob.ts: same
  find-due/send-once/mark-reminderSentAt pattern as the existing
  dailyDunningJob.ts. Safe to run without OneSignal credentials
  configured — sendPushNotification degrades to an in-app Notification
  log when ONESIGNAL_APP_ID/API_KEY or a user's pushToken are absent.

Not done here (needs real third-party setup from the user, same as the
Cloudflare tunnel token pattern): ONESIGNAL_APP_ID/API_KEY in .env, and
a frontend OneSignal Web SDK integration (service worker, VAPID keys)
to actually populate pushToken from a real browser.
2026-08-13 07:47:42 +00:00
..
prisma Seed: skip if DB already has data instead of wiping it 2026-08-13 07:18:13 +00:00
scripts add backend/scripts/send-test-webhook.ts 2026-08-12 16:36:30 +00:00
src Wire up OneSignal push delivery: register endpoint + reminder jobs 2026-08-13 07:47:42 +00:00
Dockerfile add backend/Dockerfile 2026-08-12 16:26:09 +00:00
package-lock.json Add 1-click PDF export for tickets (craftsman handoff) 2026-08-13 07:27:01 +00:00
package.json Wire up OneSignal push delivery: register endpoint + reminder jobs 2026-08-13 07:47:42 +00:00
tsconfig.json add backend/tsconfig.json 2026-08-12 16:26:09 +00:00