feat: Wabenhain Honig-Shop Anwendung
Vollstaendige Next.js/Prisma-E-Commerce-Anwendung fuer eine Imkerei: Shop, Warenkorb, Stripe-Checkout, Kundenkonto mit 2FA, Admin-Bereich (Produkte, Ernten, Chargen, Bestellungen, Gutscheine, admin-editierbare Website-Inhalte), i18n (DE/EN), Rate-Limiting/CSP/Audit-Log-Haertung, PostgreSQL- und MySQL-Unterstuetzung ueber austauschbare Prisma- Treiber-Adapter, Unit-/Komponenten-/E2E-Tests.
This commit is contained in:
1 parent
5c76fcc266
commit
c7927f2883
240 files changed
+26096
-137
No files matched your search
@@ -0,0 +1,25 @@
|
||||
import { prisma } from "@/lib/prisma";
|
||||
|
||||
// Fester Willkommensrabatt-Code fuer neu bestaetigte Newsletter-Abonnenten.
|
||||
// Bewusst EIN geteilter Code statt eines pro Kunde generierten (Schema hat
|
||||
// keine Kunden-Bindung an DiscountCode) — analog zu oeffentlich bekannten
|
||||
// "WELCOME10"-Codes bei anderen Shops. minOrderCents/PERCENT-Wert sind eine
|
||||
// Einschaetzung und lassen sich im Admin-Bereich (DiscountCode-Verwaltung)
|
||||
// jederzeit nachjustieren.
|
||||
export const NEWSLETTER_DISCOUNT_CODE = "WILLKOMMEN10";
|
||||
export const NEWSLETTER_DISCOUNT_PERCENT = 10;
|
||||
export const NEWSLETTER_DISCOUNT_MIN_ORDER_CENTS = 2000;
|
||||
|
||||
/** Idempotent — legt den Willkommensrabatt-Code an, falls er noch nicht existiert. */
|
||||
export async function ensureNewsletterDiscountCode(): Promise<void> {
|
||||
await prisma.discountCode.upsert({
|
||||
where: { code: NEWSLETTER_DISCOUNT_CODE },
|
||||
create: {
|
||||
code: NEWSLETTER_DISCOUNT_CODE,
|
||||
type: "PERCENT",
|
||||
value: NEWSLETTER_DISCOUNT_PERCENT,
|
||||
minOrderCents: NEWSLETTER_DISCOUNT_MIN_ORDER_CENTS,
|
||||
},
|
||||
update: {},
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user