Frontend – Struktur
Version: 1.0.0 | Status: DRAFT | Updated: 2026-04-22
Verzeichnisstruktur
frontend/
├── src/
│ ├── lib/
│ │ ├── api/
│ │ │ ├── msGraph.ts # MS Graph Abstraction
│ │ │ └── rewe.ts # REWE Concierge Abstraction
│ │ ├── mock/
│ │ │ ├── ms-graph-calendar.json
│ │ │ ├── ms-graph-booking-appointment.json
│ │ │ ├── ms-graph-booking-paid.json
│ │ │ └── rewe-products.json
│ │ └── bookingStore.ts # Svelte Stores
│ └── routes/
│ ├── +page.svelte # Landing Page
│ ├── booking/
│ │ ├── +page.svelte # Schritt 1: Datum & Extras
│ │ └── confirmation/
│ │ └── +page.svelte # Schritt 3: Bestätigung
│ └── concierge/
│ └── +page.svelte # Schritt 2: REWE Concierge
├── package.json
├── svelte.config.js
├── tsconfig.json
└── vite.config.ts
Svelte Stores
bookingStore.ts
export const booking = writable<BookingState>({
checkIn: '',
checkOut: '',
guests: 2,
name: '',
email: '',
extras: { linen: false, grill: false, boller: false },
concierge: null,
appointmentId: null
});
export const priceBreakdown = derived(booking, ($b) => { ... });
Mock Toggle
// Beide API-Dateien haben denselben Toggle:
const USE_MOCK = true;
// → true: JSON-Dateien aus /src/lib/mock/
// → false: Echter Fetch mit Auth-Header