Skip to content

feat(notifications): revenue recognition export, tz-aware quiet hours, digest batching, preferences entry point - #1833

Merged
github-actions[bot] merged 1 commit into
Smartdevs17:mainfrom
Dev-sandy1:feat/notifications-revenue-exports
Oct 19, 2026
Merged

github-actions[bot] merged 1 commit into
Smartdevs17:mainfrom
Dev-sandy1:feat/notifications-revenue-exports

Conversation

@Dev-sandy1

Copy link
Copy Markdown
Contributor

Summary

  • Add revenue recognition export #1743 — Revenue recognition export: \exportRecognitionEntries\ flattens revenue schedules into per-period rows with accrual (ASC 606 pro-rating) or cash basis, filtered to any window, emitted as CSV or JSON; wired to export buttons on the Revenue Report screen and an \exportRecognitionEntries\ action in the accounting store.
  • Add push notification scheduling #1744 — Timezone-aware quiet hours: push scheduling and delivery deferral now evaluate the quiet window in the subscriber's configured IANA timezone (DST-safe, Intl-based), instead of hard-coded UTC/device-local hours. Critical notifications still bypass quiet hours; UTC scheduling is preserved.
  • Add email digest option #1746 — Email digest: when a subscriber chooses a daily/weekly digest, non-critical notifications are buffered and flushed as one grouped digest notification once its UTC window (09:00 UTC next day / next Monday) passes; \ lushDigestNow/\maybeFlushDueDigest\ are exported for the host app to call on resume/foreground.
  • Add a notification preferences center #1745 — Preferences center reachability: registered the \NotificationPreferences\ route in the root stack types and added a Settings row that opens the existing notification preferences screen (categories, channels, digest schedule, quiet hours).

Tests

  • \src/services/tests/revenueRecognitionExport.test.ts\ (accrual pro-rating, cash basis, window filter, sorting, CSV/JSON, escaping)
  • \src/services/tests/pushScheduleEngine.test.ts\ (UTC + Europe/Berlin quiet hours, DST boundaries, critical bypass, opt-in filter, digest windows, DigestBuilder grouping)
  • \src/services/tests/notificationDigest.test.ts\ (buffering, grouped flush, critical bypass, auto-flush on window, immediate mode, digest-not-re-buffered)
  • Existing
    otificationPreferencesStore\ suite (31 tests) still green.

Closes #1743
Closes #1744
Closes #1745
Closes #1746

…, digest batching, and preferences entry point

- Export recognised revenue per period as CSV/JSON with accrual or cash
  basis (Smartdevs17#1743)
- Evaluate quiet hours in the subscriber's configured timezone with
  DST-safe UTC scheduling (Smartdevs17#1744)
- Batch non-critical notifications into daily/weekly digests with grouped
  content and window-based flushing (Smartdevs17#1746)
- Surface the notification preferences center from Settings and register
  its navigation route (Smartdevs17#1745)

Closes Smartdevs17#1743
Closes Smartdevs17#1744
Closes Smartdevs17#1745
Closes Smartdevs17#1746
@drips-wave

drips-wave Bot commented Oct 19, 2026

Copy link
Copy Markdown

@Dev-sandy1 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@github-actions
github-actions Bot merged commit e29421e into Smartdevs17:main Oct 19, 2026
11 of 32 checks passed
@Dev-sandy1
Dev-sandy1 deployed to security-review October 19, 2026 10:52 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
security-review — 96daa669 Deployed Oct 19, 2026 by Dev-sandy1 via Security Dashboard #1385
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add email digest option Add a notification preferences center Add push notification scheduling Add revenue recognition export

2 participants