# 🧪 Mockdaten-Modus (`NEXT_PUBLIC_USE_MOCKS=true`)

Dieses Projekt unterstützt einen optionalen **Mockdaten-Modus**, um Entwicklung und Tests ohne
Backend/Webservice durchzuführen.

---

## 🔍 Zweck & Nutzen

- Schneller Entwicklungsstart ohne aktive Serververbindung
- Stabilere Testszenarien mit festen JSON-Daten
- Vollständige Isolation von Backend-Fehlern während der UI-Entwicklung

---

## ⚙️ Aktivierung

Mockdaten werden aktiviert durch folgende Umgebungsvariable:

```env
NEXT_PUBLIC_USE_MOCKS=true
```

Diese Variable wird in `.env.local` gesetzt und **nicht** für die Produktionsumgebung verwendet.  
Im Produktivbetrieb steht:

```env
NEXT_PUBLIC_USE_MOCKS=false
```

---

## 🧩 Funktionsweise

Wenn `NEXT_PUBLIC_USE_MOCKS=true` gesetzt ist:

- Statt realer Webservices werden Endpunkte unter `/pages/api/mocks/webservice/*.js` aufgerufen
- Diese geben vorbereitete JSON-Dateien unter `/mockData/*.json` zurück

---

## 📂 Beispiel-Aufruf im Mockmodus

```ts
// Beispiel aus fetchGisSystemStaticService.js
const url = useMocks
  ? "/api/mocks/webservice/GisSystemStatic"
  : `${apiUrl}/WebServiceMap.asmx/GisSystemStatic`;
```

---

## 🛡️ Sicherheit & Versionskontrolle

- Alle `.json`-Dateien im Ordner `/mockData/` sind über `.gitignore` vom Repository ausgeschlossen
- So wird verhindert, dass versehentlich sensible Testdaten veröffentlicht werden

---

## 💡 Hinweise

- Mockdaten sollen nur die wichtigsten API-Schnittstellen simulieren
- Bei Änderungen am Datenmodell sollten auch die Mockdaten aktualisiert werden
- Eine zentrale Thunk- & Service-Logik entscheidet automatisch, ob `mock` oder `real`

---

## 🔗 Weitere Informationen

- [📄 Umgebungsvariablen](env.md)
- [📄 Webservices im Detail](webservices.md)
- [📄 Zustandverwaltung (Redux)](redux-zustand.md)
