Gewinner-Ziehung
Das Modul Gewinner-Ziehung losst aus dem Pool der Teilnehmer einer Kampagne automatisch eine gewünschte Anzahl Gewinner aus — transparent, nachvollziehbar und rechtskonform (Audit-Snapshot des Teilnehmer-Pools zum Ziehungszeitpunkt).
Ziehung anstoßen
Auf der Edit-Seite einer Kampagne findest du die Liste „Ziehungen". Dort legst du eine neue Ziehung an:
| Feld | Beschreibung | Beispiel |
|---|---|---|
winner_count | Anzahl der Gewinner (1–50) | 3 |
door_id | Optional: Ziehung nur unter Teilnehmern eines bestimmten Türchens | Türchen 24 |
notes | Interne Notiz (z. B. „Hauptpreis Fernseher") | „Gewinn: Samsung 55" |
Wie wird gezogen?
- Alle in Frage kommenden Teilnehmer (Gesamtkampagne oder gefiltert nach Türchen) werden in einer Transaktion eingesammelt.
-
Per Fisher-Yates-Shuffle (auf
random_intbasierend — kryptografisch belastbar) werden die Gewinner gezogen. -
Der komplette Pool (Liste der Teilnehmer-IDs, die in Frage kamen) wird als
JSON-Snapshot in
participant_poolgespeichert — so ist die Ziehung später reproduzierbar und prüfbar.
Gewinner benachrichtigen
Der Button „Benachrichtigen" neben jeder Ziehung verschickt eine E-Mail an alle noch
nicht benachrichtigten Gewinner (notified_at IS NULL). Du kannst einen freien
Zusatztext mitgeben, der unter der Standardnachricht erscheint.
Beispiel-Zusatztext:
„Bitte melde dich bis spätestens 31. Dezember bei uns unter gewinn@example.com, um deinen Preis zu reklamieren. Nach Ablauf der Frist verfällt der Anspruch."
Typischer Ablauf
- Kampagne läuft, Teilnehmer sammeln sich
- Kampagne endet (
ends_aterreicht) - Du öffnest Ziehungen, legst eine Ziehung mit
winner_count = 3an - System zieht drei Gewinner atomar
- Du klickst „Benachrichtigen" — die drei bekommen die E-Mail
- In der Liste stehen nun Name, E-Mail und Zeitpunkt
notified_atpro Gewinner
Mehrere Preise, unterschiedliche Pools
Du kannst pro Kampagne beliebig viele Ziehungen anlegen. Beispiel:
- Hauptpreis: Ziehung über alle Teilnehmer,
winner_count=1 - Tagespreise: Pro Türchen eine Ziehung mit
door_id,winner_count=1 - Trostpreise: Eine weitere Ziehung mit
winner_count=10
Jede Ziehung speichert ihren eigenen Pool-Snapshot, sodass sich die Listen nicht beeinflussen.