# Plan: Tagesroute – Start-/Zielpunkt & Stau-Warnung

> Erweiterung der Tagesroute. Nur Plan — gebaut wird erst nach deinem „Bauen". Stand: 06.08.2026.

## Neues Konzept (Start & Ziel)
Statt „aktueller GPS-Standort" wird der Start die **Heimatadresse des eingeloggten Außendienstmitarbeiters** (aus `benutzer.json`). Zusätzlich ein **Rückweg** ans Ende der Route.

### 1) Heimatadresse in `benutzer.json`
- Pro Benutzer ein Feld **`adresse` { strasse, plz, ort }** (Heimat/Büro). Ergänze ich für Elmar (+ die anderen).
- User-Modell (DataStore) bekommt `adresse`.
- **Geocoding nur einmal:** Die Adresse wird **einmal** zu Koordinaten aufgelöst und **gecacht** (pro Benutzer/Adresse). **Nur bei Adressänderung** wird neu aufgelöst.

### 2) Startpunkt wählbar (Switch)
- **Switch „Von zu Hause" ⇄ „Andere Adresse".**
  - *Von zu Hause*: Heimatadresse (Default).
  - *Andere Adresse*: Eingabe per Adress-/Ortssuche (MKLocalSearch) → Koordinaten kommen direkt aus dem Treffer.
- „Start"-Zeile ganz oben zeigt den aktiven Start (Ort/Adresse) + Umschalten.

### 3) Rückweg (Zielpunkt)
- Am Ende wird **der Weg zurück berechnet** — **Switch „Nach Hause" ⇄ „Übernachtungsadresse"** (Übernachtung per Suche eingeben). Optional „Kein Rückweg".
- „Ziel"-Zeile unter dem letzten Termin zeigt das Ziel + Umschalten; darüber die Rückweg-Etappe „Rückweg · km · Min".

### 4) Stau-Warnung (wie geplant)
- Pro Etappe verkehrsabhängige Zeit (Abfahrt = jetzt) vs. staufreie Basis → **Verzögerung**. Ab ~5 Min ein kleines **⚠ +X Min** hinter „km · Min" (amber).

## Route-Aufbau (Heute)
```
Start · Zuhause (Emden)                         [Switch: Von zu Hause | Andere Adresse]
   Anfahrt · 92 km · 1 Std 6 Min
08:30  Bauzentrum Nord GmbH (Bremen)
   Bis zum nächsten Stopp · 5 km · 9 Min
10:30  Bauzentrum West GmbH (Bremen)
   Bis zum nächsten Stopp · 118 km · 1 Std 22 Min  ⚠ +12 Min
13:00  Nordbau Handel GmbH (Hamburg)
   Bis zum nächsten Stopp · 152 km · 1 Std 40 Min
16:00  Baucentrum Hannover KG (Hannover)
   Rückweg · 205 km · 2 Std 10 Min
Ziel · Zuhause (Emden)                          [Switch: Nach Hause | Übernachtung]

Heutige Besuche   ~840 km · ~8 Std   (Gesamt inkl. Anfahrt + Rückweg)
```

## Technik
- `benutzer.json` + `User.adresse`; **Geocode-Cache** (In-Memory, Key = Benutzer+Adresse; optional UserDefaults für Sitzungen).
- `TagesrouteModel`: `startWahl` (zuhause | andereAdresse), `zielWahl` (zuhause | übernachtung | kein), Heimatkoordinate (gecacht). Änderung → Neuberechnung.
- `RouteService`: Anfahrt (Start → 1. Stopp) + Etappen + **Rückweg** (letzter Stopp → Ziel). Je Etappe verkehrsabhängige Zeit + staufreie Basis → Verzögerung; Polyline für die Karte; Cache; Offline-Fallback (Luftlinie).
- Karte unter dem Donut zeigt Start + Stops + Ziel + Route; Tap → ganze Route in Apple Maps (Start → Stops → Ziel).
- Tagessumme (hinter „Heutige Besuche") = Anfahrt + alle Etappen + Rückweg.

## Ehrlich zur Technik (MapKit)
- Verkehr ist **prognostiziert**, kein Live-Incident-Feed; Verzögerung = „mit Stau − staufrei" (Schätzung).
- Stau-Warnung braucht **2 Abfragen pro Etappe** → über Cache abgefedert.
- Geocoding der Heimatadresse: einmal, gecacht (wie gewünscht).

## Schon erledigt (aus vorheriger Runde, bereits live)
- Verbindungslinie zwischen den Indikatoren (liegt hinter den Knoten).
- Etappen-Text „Bis zum nächsten Stopp · …".

## Schritte (nach deinem Go)
1. Daten: `adresse` in `benutzer.json` + `User.adresse`; Geocode-Cache.
2. Modell: Start-/Ziel-Wahl (zuhause/andere/übernachtung) + Heimatkoordinate.
3. Service: Anfahrt + Etappen + Rückweg; Verzögerung je Etappe.
4. UI: Start-Zeile (Switch), Ziel-Zeile (Switch), Rückweg-Etappe, Stau-Badge; Karte/Apple-Maps mit Start+Ziel.
5. Build → **du testest**.

## Status
Plan aktualisiert (Heimatadresse, Start-/Ziel-Switch, Rückweg, Geocode-Cache, Stau). **Warte auf dein „Bauen".**
