Gutscheine (Stammmodel-Codes) mit Kontingent und Missbrauchsschutz #8

Closed
opened 2026-10-16 05:54:48 +00:00 by Nick.Rosenloecher · 0 comments
Owner

Ziel

Persönlich vergebene Stammmodel-Codes (weitere 10 %), kombinierbar mit Early Bird, nicht mit weiteren Gutscheinen. Auf der Seite nur ein neutrales Feld „Gutscheincode“.

Umgesetzt

  • Gutscheinverwaltung im Admin: Code, aktiv/inaktiv, Gültigkeitszeitraum, maximale Einlösungen, optionale Bindung an eine E-Mail, interne Zuordnung, reservierte und abgeschlossene Einlösungen (src/app/admin/(bereich)/gutscheine/*, src/lib/vouchers.ts)
  • Konfigurierbares Gesamtkontingent für Stammmodel-Buchungen, vorläufig 4 (Freigabe im Admin)
  • Transaktionale Einlöselimits, Freigabe bei abgebrochenem oder abgelaufenem Checkout, immer dieselbe neutrale Ablehnungsmeldung, Rate Limit
  • Der Beispielcode aus dem Briefing wird nicht angelegt; Entwicklungsdaten nutzen TEST-STAMMMODEL
  • Gutschein-Detailseite zeigt, ob der Code gerade einlösbar ist und warum nicht (20adfaa, 06.10.2026)
  • Tests: ungültige, inaktive, abgelaufene, fremd gebundene und ausgeschöpfte Codes, 7 parallele Einlösungen bei 2 erlaubten

Offen

  • Kontingent (vorläufig 4) durch den Inhaber bestätigen, siehe #22

Grundlage

docs/ARCHITEKTUR.md (ADR-4), tests/booking.integration.test.ts.

Status

Code: ja · Geprüft: ja · Gemergt: ja · Produktiv: ja (im Cluster belegt ausgerollt sha-5a88f3d am 13.10.2026)
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)

## Ziel Persönlich vergebene Stammmodel-Codes (weitere 10 %), kombinierbar mit Early Bird, nicht mit weiteren Gutscheinen. Auf der Seite nur ein neutrales Feld „Gutscheincode“. ## Umgesetzt - [x] Gutscheinverwaltung im Admin: Code, aktiv/inaktiv, Gültigkeitszeitraum, maximale Einlösungen, optionale Bindung an eine E-Mail, interne Zuordnung, reservierte und abgeschlossene Einlösungen (`src/app/admin/(bereich)/gutscheine/*`, `src/lib/vouchers.ts`) - [x] Konfigurierbares Gesamtkontingent für Stammmodel-Buchungen, vorläufig 4 (Freigabe im Admin) - [x] Transaktionale Einlöselimits, Freigabe bei abgebrochenem oder abgelaufenem Checkout, immer dieselbe neutrale Ablehnungsmeldung, Rate Limit - [x] Der Beispielcode aus dem Briefing wird nicht angelegt; Entwicklungsdaten nutzen `TEST-STAMMMODEL` - [x] Gutschein-Detailseite zeigt, ob der Code gerade einlösbar ist und warum nicht (`20adfaa`, 06.10.2026) - [x] Tests: ungültige, inaktive, abgelaufene, fremd gebundene und ausgeschöpfte Codes, 7 parallele Einlösungen bei 2 erlaubten ## Offen - [ ] Kontingent (vorläufig 4) durch den Inhaber bestätigen, siehe #22 ## Grundlage `docs/ARCHITEKTUR.md` (ADR-4), `tests/booking.integration.test.ts`. ## Status Code: ja · Geprüft: ja · Gemergt: ja · Produktiv: ja (im Cluster belegt ausgerollt sha-5a88f3d am 13.10.2026) Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
Nick.Rosenloecher added the prio/mittelstatus/erledigtart/feature labels 2026-10-16 05:54:49 +00:00
Sign in to join this conversation.