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,93 @@
|
||||
// Zentrale, austauschbare Inhalte fuer Navigation, Footer und Firmendaten.
|
||||
// email/phone sind noch keine echten Kontaktdaten (auf dem Etikett nicht
|
||||
// abgebildet) und muessen vor dem Live-Gang ersetzt werden — bewusst ohne
|
||||
// sichtbaren "[PLATZHALTER]"-Text im String, da dieser sonst 1:1 im Footer
|
||||
// und auf der Kontaktseite mitgerendert wuerde.
|
||||
|
||||
export const categoryLabels = {
|
||||
HONIG: "Honig",
|
||||
KERZEN: "Bienenwachskerzen",
|
||||
PROPOLIS: "Propolis",
|
||||
} as const;
|
||||
|
||||
export const siteConfig = {
|
||||
name: "WABENHAIN",
|
||||
claim: "Honig aus den Westlichen Wäldern.",
|
||||
claimAlt: "Eine Landschaft. Eine Ernte. Ein ehrliches Glas.",
|
||||
domain: "wabenhain.com",
|
||||
description:
|
||||
"Entdecke hochwertigen Honig aus eigener Imkerei in Altenmünster. Kleine Ernten, klare Herkunft und echtes Imkerhandwerk.",
|
||||
location: "Altenmünster, Bayern",
|
||||
email: "[email protected]",
|
||||
phone: "+49 (0) 000 000000",
|
||||
address: {
|
||||
street: "Buhlweg 10",
|
||||
zip: "86450",
|
||||
city: "Altenmünster",
|
||||
country: "Deutschland",
|
||||
},
|
||||
} as const;
|
||||
|
||||
// "key" verweist auf i18n/dictionary-type.ts (nav.* bzw. footer.*/legalTitles.*)
|
||||
// statt eines fest verdrahteten Labels — site-chrome.tsx loest den Text zur
|
||||
// Laufzeit aus der aktiven Dictionary auf, damit Navigation und Footer mit
|
||||
// der Sprachumschaltung mitziehen.
|
||||
export const mainNav = [
|
||||
{ href: "/shop", key: "shop" },
|
||||
{ href: "/ernten", key: "harvests" },
|
||||
{ href: "/herkunft", key: "origin" },
|
||||
{ href: "/imkerei", key: "apiary" },
|
||||
{ href: "/unternehmen", key: "business" },
|
||||
{ href: "/wissen", key: "knowledge" },
|
||||
{ href: "/kontakt", key: "contact" },
|
||||
] as const;
|
||||
|
||||
export const footerNav = {
|
||||
wabenhain: [
|
||||
{ href: "/imkerei", key: "aboutUs" },
|
||||
{ href: "/herkunft", key: "origin" },
|
||||
{ href: "/ernten", key: "harvests" },
|
||||
{ href: "/kontakt", key: "contact" },
|
||||
],
|
||||
einkaufen: [
|
||||
{ href: "/shop", key: "shop" },
|
||||
{ href: "/versand-zahlung", key: "shipping" },
|
||||
{ href: "/versand-zahlung", key: "pickup" },
|
||||
{ href: "/unternehmen", key: "businessCustomers" },
|
||||
{ href: "/bestellung-verfolgen", key: "trackOrder" },
|
||||
],
|
||||
informationen: [
|
||||
{ href: "/wissen", label: "Honigwissen" },
|
||||
{ href: "/kontakt", label: "Kontakt" },
|
||||
],
|
||||
rechtliches: [
|
||||
{ href: "/impressum", key: "impressum" },
|
||||
{ href: "/datenschutz", key: "datenschutz" },
|
||||
{ href: "/agb", key: "agb" },
|
||||
{ href: "/widerrufsbelehrung", key: "widerruf" },
|
||||
{ href: "/versand-zahlung", key: "versandZahlung" },
|
||||
{ href: "/cookie-richtlinie", key: "cookieRichtlinie" },
|
||||
],
|
||||
} as const;
|
||||
|
||||
// philosophyItems, processSteps, sustainabilityItems, die Fallback-Reviews
|
||||
// und businessPackages leben jetzt uebersetzt in i18n/dictionaries/{de,en}.ts
|
||||
// (home.philosophy, home.processTimeline, home.sustainability,
|
||||
// home.reviews.testimonials, unternehmenPage.packages).
|
||||
|
||||
// Nur noch die Slugs (locale-unabhaengig, fuer generateStaticParams/Sitemap) —
|
||||
// Titel/Anrisstext/Fliesstext jedes Artikels leben jetzt uebersetzt unter
|
||||
// i18n/dictionaries/{de,en}.ts (wissenArticles), siehe i18n/dictionary-type.ts
|
||||
// fuer die WissenSlug-Union, die exakt diese Liste widerspiegelt.
|
||||
export const wissenSlugs = [
|
||||
"warum-kristallisiert-honig",
|
||||
"fluessiger-oder-cremiger-honig",
|
||||
"was-bedeutet-fruehtracht",
|
||||
"was-bedeutet-sommertracht",
|
||||
"wie-entsteht-honig",
|
||||
"warum-schmeckt-jede-honigernte-anders",
|
||||
"wie-lange-ist-honig-haltbar",
|
||||
"was-macht-regionalen-honig-aus",
|
||||
"wie-honig-richtig-lagern",
|
||||
"warum-nie-ueber-28-grad-erwaermt",
|
||||
] as const;
|
||||
Reference in new issue
Block a user