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
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)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
src/app/admin/(bereich)/gutscheine/*,src/lib/vouchers.ts)TEST-STAMMMODEL20adfaa, 06.10.2026)Offen
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)