Files
Atlas/PHASE3-ROADMAP.md
2025-11-12 20:21:32 +01:00

350 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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?