25889a5419
fix: Rollback auf draft bei Versand-Fehlern, Fehlermeldung updateCampaign
Joachim Hummel2026-04-17 13:50:21 +00:00
889bfad085
fix: API Routes — Ergebnisprüfung, Suppression-Check vor Enqueue, Bulk-Enqueue, Status-Codes, Draft-Guard
Joachim Hummel2026-04-17 13:44:42 +00:00
e2f2ce6a56
feat: API Routes — Campaign CRUD, sofortiger Versand, Zeitplan
Joachim Hummel2026-04-17 13:39:46 +00:00
e49552236d
fix: safeInsertEvent verhindert Doppelversand, Union-Typ für eventType, Privacy-Tests ergänzt
Joachim Hummel2026-04-17 12:13:31 +00:00
8bf143735e
feat: BullMQ Worker — Suppression-Check vor SMTP, ClickHouse-Event-Insert, RFC-8058-Header
Joachim Hummel2026-04-17 12:09:04 +00:00
5340e76630
fix: Typ-Generic in checkSuppression, SMTP_PASS Fallback, Logging-Test prüft console.error, tenantId-Fehler-Test
Joachim Hummel2026-04-17 10:53:56 +00:00
a60b08876c
feat: Suppression-Check (normalisiert, parametrisiert) und SMTP-Client mit RFC-8058-Header
Joachim Hummel2026-04-17 10:51:26 +00:00
5b24c9f129
fix: DI statt Singleton, Queue-Name email-send (BullMQ v5 kein Doppelpunkt), err bei fehlender Job-ID
Joachim Hummel2026-04-17 10:36:04 +00:00
7baeb004c6
feat: BullMQ email:send Queue — enqueueEmailSend mit maxAttempts 3, exponentielles Backoff
Joachim Hummel2026-04-17 10:32:40 +00:00
4a54d31bd0
fix: updateCampaignStatus überschreibt keine bestehenden Scheduling-Daten, fehlende Tests ergänzt
Joachim Hummel2026-04-17 09:55:45 +00:00
4245a1fbde
feat: Campaign Repository — CRUD mit Tenant-Isolation und Result-Pattern
Joachim Hummel2026-04-17 09:52:55 +00:00
c4d3c348c1
fix: CREATE OR REPLACE TRIGGER (idempotent), FK-Indizes für campaign_recipients und campaign_triggers
Joachim Hummel2026-04-17 08:59:38 +00:00
5a144e0ce4
feat: Migrationen für campaigns-Tabellen (PostgreSQL) und email_events (ClickHouse)
Joachim Hummel2026-04-17 08:57:37 +00:00
3c3088e66b
fix: execute mit optionalen Params, release(error) bei reset-Fehler, Tests ergänzt
Joachim Hummel2026-04-17 08:35:31 +00:00