add newsletter and email campaigns

Subscribers with double opt-in confirmation, campaign composer with
draft/scheduled/sent lifecycle, admin dashboard with overview stats,
CSV export, and shop signup form wired into page builder blocks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-02-28 23:25:28 +00:00
parent 8f989d892d
commit ad2e6d1e6d
32 changed files with 2497 additions and 32 deletions

View File

@@ -96,10 +96,12 @@ config :berrypod, Oban,
{"0 */6 * * *", Berrypod.Sync.ScheduledSyncWorker},
{"0 3 * * *", Berrypod.Analytics.RetentionWorker},
{"0 4 * * *", Berrypod.Orders.AbandonedCartPruneWorker},
{"0 5 * * 1", Berrypod.Workers.RedirectPrunerWorker}
{"0 5 * * 1", Berrypod.Workers.RedirectPrunerWorker},
{"0 2 * * *", Berrypod.Newsletter.CleanupWorker},
{"*/5 * * * *", Berrypod.Newsletter.ScheduledCampaignWorker}
]}
],
queues: [images: 2, sync: 1, checkout: 1]
queues: [images: 2, sync: 1, checkout: 1, newsletter: 1]
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.