Initial commit - SaveTheMoment Atlas Basis-Setup

This commit is contained in:
Dennis Forte
2025-11-12 20:21:32 +01:00
commit 0b6e429329
167 changed files with 30843 additions and 0 deletions

349
PHASE3-ROADMAP.md Normal file
View File

@@ -0,0 +1,349 @@
# 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?