# Phase 3: KI-Workflow Implementierungs-Roadmap

## 🎯 Ziel

Vollautomatisierter Buchungsworkflow von E-Mail-Eingang bis zur Fahrer-Zuteilung mit KI-Unterstützung.

---

## ✅ Bereits implementiert (Phase B)

### Datenbank:
- ✅ BookingStatus erweitert (7 Stati)
- ✅ DriverAvailability Model
- ✅ Booking-Felder für KI & LexOffice
- ✅ Migrations durchgeführt

### Services:
- ✅ AIService (`lib/ai-service.ts`)
  - E-Mail-Parsing mit GPT-4
  - Antwort-Generierung
  - Vertrags-Personalisierung
  
- ✅ LexOfficeService (`lib/lexoffice.ts`)
  - Kontakt-Erstellung
  - Angebots-Erstellung
  - Auftragsbestätigungs-Erstellung

### API-Endpunkte:
- ✅ `/api/bookings/[id]/ai-analyze` - KI-Analyse
- ✅ `/api/bookings/[id]/release-to-drivers` - Admin-Freigabe
- ✅ `/api/bookings/[id]/availability` - Fahrer-Verfügbarkeit
- ✅ `/api/bookings/[id]/assign-driver` - Fahrer-Zuteilung
- ✅ `/api/cron/check-contracts` - Auto-Vertragsprüfung

---

## 📱 UI-Komponenten (TODO)

### 1. Admin-Dashboard Erweiterungen

#### 1.1 Neue Anfragen (Status: RESERVED + aiParsed)

**Component**: `components/admin/NewBookingsQueue.tsx`

```tsx
Ansicht:
┌─────────────────────────────────────────────────────────┐
│ 📨 Neue Anfragen (3)                                     │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  [KI] Max Mustermann - Hochzeit 15.12.2025  [Analysieren]│
│      📧 max@example.com | 📍 Berlin                     │
│      💡 KI-Analyse: 95% sicher | Antwort-Entwurf bereit│
│      [Entwurf ansehen] [Angebot erstellen]              │
│                                                          │
│  [NEU] Anna Schmidt - Firmenevent 20.12.2025 [Analysieren]│
│       📧 anna@firma.de | 📍 Hamburg                     │
│       ⚠️ Noch nicht analysiert                          │
│                                                          │
└─────────────────────────────────────────────────────────┘
```

**Features**:
- Liste aller Buchungen mit `status === RESERVED`
- Badge "KI" für analysierte, "NEU" für neue
- Inline-Buttons: "Analysieren", "Entwurf ansehen"
- KI-Confidence-Anzeige
- Schnell-Aktionen


#### 1.2 KI-Entwurfs-Dialog

**Component**: `components/admin/AIReviewDialog.tsx`

```tsx
Modal:
┌─────────────────────────────────────────────────────────┐
│ 🤖 KI-Analyse: Max Mustermann                    [X]    │
├─────────────────────────────────────────────────────────┤
│                                                          │
│ ✅ Extrahierte Daten:                                    │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Name: Max Mustermann                 [Bearbeiten]  │ │
│ │ E-Mail: max@example.com                            │ │
│ │ Telefon: +49 123 456789                            │ │
│ │ Event: 15.12.2025, 18:00 Uhr                       │ │
│ │ Ort: Hochzeitssaal Berlin, 10115 Berlin            │ │
│ │ Typ: Privat                                        │ │
│ └─────────────────────────────────────────────────────┘ │
│                                                          │
│ 📝 KI-Antwort-Entwurf:                                   │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Sehr geehrter Herr Mustermann,                     │ │
│ │                                                     │ │
│ │ vielen Dank für Ihre Anfrage für Ihre Hochzeit... │ │
│ │ [... editierbarer Text ...]                        │ │
│ └─────────────────────────────────────────────────────┘ │
│                                                          │
│ 📄 Aktionen:                                             │
│ [Angebot erstellen] [Vertrag generieren] [Verwerfen]    │
│                                                          │
│ [Alles bestätigen & senden] ←─────────────────────────  │
└─────────────────────────────────────────────────────────┘
```

**Features**:
- Bearbeitbare extrahierte Daten
- Editierbarer Antwort-Entwurf
- "Alles bestätigen & senden" → Erstellt Angebot + Vertrag + sendet E-Mail
- Status: RESERVED → CONFIRMED


#### 1.3 Freizugebende Buchungen (Status: READY_FOR_ASSIGNMENT)

**Component**: `components/admin/ReadyForAssignmentQueue.tsx`

```tsx
Ansicht:
┌─────────────────────────────────────────────────────────┐
│ ✅ Freizugebende Buchungen (2)                           │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  ✓ Max Mustermann - Hochzeit 15.12.2025                 │
│    📝 Vertrag unterschrieben (digital)                  │
│    💰 Auftragsbestätigung versendet                     │
│    [Für Fahrer freigeben] ←────────────────────────────│
│                                                          │
│  ✓ Anna Schmidt - Firmenevent 20.12.2025                │
│    📝 Vertrag hochgeladen (analog)                      │
│    💰 Auftragsbestätigung versendet                     │
│    [Für Fahrer freigeben]                               │
│                                                          │
└─────────────────────────────────────────────────────────┘
```

**Features**:
- Automatisch gefiltert: `status === READY_FOR_ASSIGNMENT`
- Zeigt Vertrags-Status
- "Für Fahrer freigeben" → `status = OPEN_FOR_DRIVERS`


#### 1.4 Offene Zuweisungen (Status: OPEN_FOR_DRIVERS)

**Component**: `components/admin/DriverAssignmentQueue.tsx`

```tsx
Ansicht:
┌─────────────────────────────────────────────────────────┐
│ 🚗 Offene Zuweisungen (1)                                │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  Max Mustermann - Hochzeit 15.12.2025                    │
│  📍 Berlin | ⏰ 18:00 Uhr                                │
│                                                          │
│  👥 Verfügbare Fahrer (3):                               │
│  ┌─────────────────────────────────────────────────────┐│
│  │ ● Hans Müller                       [Zuweisen]     ││
│  │   VW T6, B-HH 1234                                  ││
│  │   ⭐⭐⭐⭐⭐ (12 Touren)                                ││
│  │   💬 "Kenne die Location gut"                       ││
│  │                                                     ││
│  │ ● Lisa Schmidt                      [Zuweisen]     ││
│  │   Mercedes Sprinter, HH-LS 567                      ││
│  │   ⭐⭐⭐⭐ (8 Touren)                                  ││
│  │                                                     ││
│  │ ● Tom Werner                        [Zuweisen]     ││
│  │   Ford Transit, B-TW 890                            ││
│  │   ⭐⭐⭐⭐⭐ (15 Touren)                                ││
│  └─────────────────────────────────────────────────────┘│
│                                                          │
└─────────────────────────────────────────────────────────┘
```

**Features**:
- Liste verfügbarer Fahrer pro Buchung
- Fahrer-Infos: Fahrzeug, Bewertung, Touren-Anzahl
- Optionale Nachricht vom Fahrer
- "Zuweisen" → Erstellt/aktualisiert Tour, Status = ASSIGNED


### 2. Fahrer-Portal Erweiterungen

#### 2.1 Verfügbare Events

**Component**: `components/driver/AvailableEvents.tsx`

```tsx
Ansicht:
┌─────────────────────────────────────────────────────────┐
│ 📅 Verfügbare Events (4)                                 │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  🎉 Hochzeit - Berlin                                    │
│  📅 15.12.2025, 18:00 Uhr                                │
│  📍 Hochzeitssaal Berlin, Musterstr. 1                   │
│  🕐 Aufbau bis 17:30 Uhr                                 │
│  [Ich bin verfügbar] ←─────────────────────────────────│
│                                                          │
│  🏢 Firmenevent - Hamburg                                │
│  📅 20.12.2025, 14:00 Uhr                                │
│  📍 Hotel Alster, Hamburg                                │
│  🕐 Aufbau bis 13:30 Uhr                                 │
│  [Ich bin verfügbar]                                     │
│                                                          │
│  ✅ Du hast dich bereits gemeldet (2)                    │
│                                                          │
└─────────────────────────────────────────────────────────┘
```

**Features**:
- Filtert `status === OPEN_FOR_DRIVERS`
- Zeigt Event-Details
- "Ich bin verfügbar" → POST `/api/bookings/[id]/availability`
- Optionale Nachricht an Admin


#### 2.2 Verfügbarkeits-Dialog

**Component**: `components/driver/AvailabilityDialog.tsx`

```tsx
Modal:
┌─────────────────────────────────────────────────────────┐
│ ✋ Verfügbarkeit bestätigen                       [X]    │
├─────────────────────────────────────────────────────────┤
│                                                          │
│ Event: Hochzeit - Berlin                                 │
│ Datum: 15.12.2025, 18:00 Uhr                             │
│                                                          │
│ Möchtest du für diesen Event verfügbar sein?             │
│                                                          │
│ Nachricht an Admin (optional):                           │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Ich kenne die Location gut und habe Erfahrung mit │ │
│ │ Hochzeiten.                                        │ │
│ └─────────────────────────────────────────────────────┘ │
│                                                          │
│                    [Abbrechen] [Bestätigen]              │
└─────────────────────────────────────────────────────────┘
```

---

## 🔄 Automatisierungs-Jobs

### Cron-Job Setup (Vercel Cron)

`vercel.json`:
```json
{
  "crons": [
    {
      "path": "/api/cron/sync-emails",
      "schedule": "*/5 * * * *"
    },
    {
      "path": "/api/cron/check-contracts",
      "schedule": "*/15 * * * *"
    },
    {
      "path": "/api/cron/sync-lexoffice",
      "schedule": "*/30 * * * *"
    }
  ]
}
```

---

## 📅 Implementierungs-Zeitplan

### Sprint 1: Admin KI-Review (2-3 Tage)
- [ ] `NewBookingsQueue` Component
- [ ] `AIReviewDialog` Component
- [ ] Integration in Dashboard
- [ ] Test: E-Mail → KI-Analyse → Review → Senden

### Sprint 2: Freigabe-Workflow (2 Tage)
- [ ] `ReadyForAssignmentQueue` Component
- [ ] Auto-Freigabe nach Vertrag
- [ ] Status-Updates testen

### Sprint 3: Fahrer-Portal (2-3 Tage)
- [ ] `AvailableEvents` Component
- [ ] `AvailabilityDialog` Component
- [ ] Verfügbarkeits-API testen

### Sprint 4: Admin Zuweisung (2 Tage)
- [ ] `DriverAssignmentQueue` Component
- [ ] Fahrer-Zuweisung UI
- [ ] Tour-Erstellung testen

### Sprint 5: E-Mail-Integration (3-4 Tage)
- [ ] IMAP E-Mail-Sync
- [ ] Webhook für neue E-Mails
- [ ] Auto-KI-Analyse bei neuer E-Mail

### Sprint 6: Testing & Polish (2-3 Tage)
- [ ] End-to-End Tests
- [ ] UI/UX-Optimierungen
- [ ] Performance-Tests

**Gesamt: ~15-20 Tage**

---

## 🔑 Benötigte API-Keys

### 1. OpenAI API Key
- **Wo**: https://platform.openai.com/api-keys
- **Kosten**: ~$0.01-0.03 pro E-Mail-Analyse
- **Limit**: Empfehlung 100$/Monat

### 2. LexOffice API Key
- **Wo**: https://app.lexoffice.de/addons/#/public-api
- **Kosten**: Kostenlos im Tarif enthalten
- **Limit**: Unbegrenzt

### 3. Google Maps API Key
- **Wo**: https://console.cloud.google.com/
- **Kosten**: 200$/Monat gratis
- **APIs**: Directions, Distance Matrix, Geocoding

---

## 🎨 Design-System

### Farben (Status-Badges):
- `RESERVED`: Blau (#3B82F6)
- `CONFIRMED`: Gelb (#F59E0B)
- `READY_FOR_ASSIGNMENT`: Lila (#A855F7)
- `OPEN_FOR_DRIVERS`: Cyan (#06B6D4)
- `ASSIGNED`: Grün (#10B981)
- `COMPLETED`: Grau (#6B7280)
- `CANCELLED`: Rot (#EF4444)

### Icons:
- 📨 Neue Anfrage
- 🤖 KI-analysiert
- ✅ Vertrag unterschrieben
- 💰 Auftragsbestätigung
- 👥 Verfügbare Fahrer
- 🚗 Zugewiesen
- ✓ Abgeschlossen

---

**Bereit für die Implementierung?**
Welcher Sprint soll als nächstes angegangen werden?
