bunker-admin
900a0affe5
Add CRM activity enrichment, notification bridging, crash-safe scheduled jobs, and quick wins
Workstream A — CRM & Notifications:
- Add fire-and-forget CRM activity helper (api/src/utils/crm-activity.ts) hooked into
campaign email, canvass visit, donation, and purchase write sites
- Add 5 operational NotificationType enum values (shift_signup_confirmed, shift_reminder,
shift_cancelled, canvass_session_summary, reengagement) via Prisma migration
- Bridge notification email queue to in-app notifications for volunteer-facing events
- Extend TYPE_TO_PREF map and NotificationsPage labels for new types
Workstream B — Quick Wins:
- Extract shared role constants (11 roles) to admin/src/utils/role-constants.ts,
update 4 consuming pages
- Add Ad Analytics sidebar entry in payments submenu
- Gate 6 calendar routes with enableSocialCalendar feature flag
- Add GET /series/:id/count endpoint and fix hardcoded shiftsCount={0} in ShiftsPage
- Add influenceCampaignId to Order model for donation-campaign attribution,
wire through Stripe checkout metadata
Workstream C — Crash-Safe Scheduled Jobs:
- Create BullMQ scheduled-jobs queue with 10 repeatable job types replacing
setInterval blocks in server.ts (dynamic imports, concurrency: 2)
- Keep presenceService (1min) and challengeScoringService (5min) as setInterval
Bunker Admin
2026-03-09 14:15:30 -06:00
..
2026-02-16 10:44:18 -07:00
2026-02-16 10:44:18 -07:00
2026-03-09 14:15:30 -06:00
2026-02-16 10:44:18 -07:00
2026-03-09 14:15:30 -06:00
2026-03-06 14:33:33 -07:00
2026-02-21 11:46:55 -07:00
2026-02-21 11:46:55 -07:00
2026-02-19 09:41:27 -07:00
2026-02-16 10:44:18 -07:00
2026-03-08 18:11:26 -06:00
2026-03-08 18:11:26 -06:00
2026-02-16 10:44:18 -07:00
2026-02-16 10:44:18 -07:00
2026-02-16 10:44:18 -07:00
2026-02-16 10:44:18 -07:00
2026-02-16 10:44:18 -07:00
2026-02-11 10:05:04 -07:00