# 🧩 poiTypesSlice – Redux Slice für POI-Typen

## Zweck

Dieses Slice verwaltet die Liste der POI-Typen (`poiTyp`) aus der Datenbank.
Die Daten werden beim Start der Karte vom Server abgerufen und im Redux Store gespeichert.

---

## Quelle

API-Endpunkt:

```
/api/talas_v5_DB/poiTyp/readPoiTyp
```

Die Daten werden über einen `createAsyncThunk` geladen:

```js
export const fetchPoiTypes = createAsyncThunk("poiTypes/fetchPoiTypes", async () => {
  // ...
});
```

---

## Dynamische API-URL

Damit kein Rebuild bei jedem Serverwechsel nötig ist, wird die API-URL dynamisch bestimmt:

```js
let API_BASE_URL = "";

if (typeof window !== "undefined") {
  API_BASE_URL = `${window.location.protocol}//${window.location.hostname}:3000`;
} else {
  API_BASE_URL = "http://localhost:3000";
}
```

➡ Dadurch kann dieselbe `.next`-Build auf verschiedenen Servern verwendet werden, ohne neu zu builden.

---

## Datenstruktur im Redux Store

```ts
{
  poiTypes: {
    items: [], // Liste aller POI-Typen
    status: "idle" | "loading" | "succeeded" | "failed"
  }
}
```

---

## Verwendung in Komponenten

Diese Daten werden typischerweise verwendet in:

- `components/pois/AddPoiModalWindow.js`
- `MapComponent.js` (indirekt)

---

## Siehe auch

- [`useFetchPoiData`](../../frontend/hooks/useFetchPoiData.md)
- API-Datei: `pages/api/talas_v5_DB/poiTyp/readPoiTyp.js`