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

16 KiB

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

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

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

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

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

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

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:

{
  "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

2. LexOffice API Key

3. Google Maps API Key


🎨 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?