Epic 14 (Облачный провайдер): биллинговые оповещения пайщикам через Novu #56

Merged
ant merged 3 commits from feat/epic-14-billing-notifications into feat/epic-13-billing-package-powerup 2026-06-04 05:03:37 +00:00
Owner

Epic 14 (проект «Облачный провайдер», B2D-16) — биллинговые оповещения пайщикам через Novu (Вариант А: провайдер → coopback → Novu).

Stories:

  • 14.1 — 4 Novu-workflow в @coopenomics/notifications (trial-ending, subscription-payment-due, subscription-past-due, subscription-suspended).
  • 14.4 — мост: входящий /billing-notifications на coopback (ServerSecretGuard, kind→workflow, NotificationSenderService) + клиент BillingNotificationClient на провайдере.
  • 14.3 — эмит PAST_DUE/SUSPENDED на переходах SubscriptionExpirationService через BillingNotificationDispatcher.
  • 14.2 — BillingReminderService: daily cron, findUpcomingDue, бакеты T-7/T-3/T-1, trial-ending/payment-due, дедуп по last_reminder_marker.
  • 14.5 — unit-тесты (8/8).

Provider: nest build 0 errors, старт чист, cron поднят. mono-сторона зависит от пересборки notifications (CI).
Связанная задача: B2D-16.

Epic 14 (проект «Облачный провайдер», B2D-16) — биллинговые оповещения пайщикам через Novu (Вариант А: провайдер → coopback → Novu). **Stories:** - 14.1 — 4 Novu-workflow в `@coopenomics/notifications` (trial-ending, subscription-payment-due, subscription-past-due, subscription-suspended). - 14.4 — мост: входящий `/billing-notifications` на coopback (ServerSecretGuard, kind→workflow, NotificationSenderService) + клиент `BillingNotificationClient` на провайдере. - 14.3 — эмит PAST_DUE/SUSPENDED на переходах SubscriptionExpirationService через BillingNotificationDispatcher. - 14.2 — BillingReminderService: daily cron, findUpcomingDue, бакеты T-7/T-3/T-1, trial-ending/payment-due, дедуп по last_reminder_marker. - 14.5 — unit-тесты (8/8). Provider: nest build 0 errors, старт чист, cron поднят. mono-сторона зависит от пересборки notifications (CI). Связанная задача: B2D-16.
claude added 2 commits 2026-06-02 07:44:22 +00:00
Epic 14: типобезопасные workflow в @coopenomics/notifications для напоминаний
пайщикам о предстоящей оплате и смене статуса подписки. Шаги email+in-app+push,
payload по zod, шаблоны на {{payload.*}} (без Handlebars-ветвлений). Регистрация
в allWorkflows. Триггер — провайдер через coopback (Вариант А), Story 14.4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Epic 14: входящий REST-канал /billing-notifications (ServerSecretGuard по общему
SERVER_SECRET, симметрично провайдеру). DTO {kind,coopname,payload}; bridge маппит
стабильный kind → Workflows.X.id и шлёт через NotificationSenderService (он сам
резолвит subscriber_id/email по coopname). coopName в payload обогащается из
getDisplayName. Ошибки Novu не пробрасываются — провайдеру важен факт приёма.

Зависит от пересборки @coopenomics/notifications (Story 14.1) — Workflows.* id.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
claude added 1 commit 2026-06-02 08:38:03 +00:00
Ревью PR mono#56 (finding #1): провайдер теперь шлёт биллинговые оповещения
через существующую типизированную мутацию triggerNotificationWorkflow
(application/notification), поэтому отдельный REST-эндпоинт
/billing-notifications на coopback больше не нужен — это был дубль уже
имеющейся инфры (NotificationSenderService + Novu).

Удалено целиком application/billing-notification/ (controller + guard + dto +
bridge service + module) и его регистрация в app.module. Workflow-определения
Epic 14 (trial-ending / subscription-payment-due / past-due / suspended) и
NotificationSenderService остаются — провайдер адресует их по Workflows.X.id.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ant approved these changes 2026-06-04 05:03:28 +00:00
ant merged commit 236020a735 into feat/epic-13-billing-package-powerup 2026-06-04 05:03:37 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: C9S/mono#56