# Aufgaben & Meilensteine

## Phase 1: Stabilisierung & Daten-Import (Abgeschlossen)
- [x] **Stabilität:** `ModuleNotFoundError` durch Downgrade der `openai`-Bibliothek beheben.
- [x] **Stabilität:** `json.JSONDecodeError` durch robuste Parser in `helpers.py` beheben.
- [x] **Sync-Design:** Prozess für den Datenabgleich D365 -> GSheet ohne API definieren.
- [x] **Implementierung:** `sync_manager.py` für den "Full-Sync mit intelligentem Merge" erstellen.
- [x] **Debugging:** Fehler im `SyncManager` (Attribut-, Typ- und Index-Fehler) iterativ beheben.
- [x] **Kernproblem-Analyse:** "Header-Mismatch" als Ursache für Datenverlust identifizieren.
- [x] **Implementierung:** Header-Normalisierung in der `_load_data`-Methode implementieren.
- [x] **Fachlogik:** Spezifische Vergleichsregeln für Länder, Techniker, Umsatz, Mitarbeiter und Branchen definieren und implementieren.
- [x] **Tooling:** Einen `simulate_sync`-Modus und einen finalen Statistik-Report implementieren.

## Phase 2: Schließen des Datenkreislaufs (In Arbeit)

- [ ] **Design:** Spalten und Format für die D365-Re-Import-Datei definieren.

- [ ] **Implementierung:** Eine neue Funktion/einen neuen Modus (`generate_import_file`) erstellen, der die `d365_import.xlsx` erzeugt.

- [ ] **Logik:** Die Funktion soll nur Datensätze exportieren, die im letzten Lauf geändert wurden (`ReEval Flag` oder neu erstellt).

- [ ] **Logik:** Die Branchennamen müssen vor dem Export mithilfe des Mappings in der `config.py` in das D365-Format übersetzt werden.

- [ ] **Testing:** Den vollständigen Round-Trip testen: `sync` -> `reeval` -> `generate_import_file` -> Manueller Import in D365.



## Phase 3: Optimierung der Potenzialanalyse (Abgeschlossen)

- [x] **Bugfix:** "Concatenated Year Bug" (z.B. Wolfra 802020) im `MetricParser` behoben.

- [x] **Logik:** Smart-Year-Skipping implementiert (Zahlen zwischen 1900-2100 werden als Jahre ignoriert, wenn Alternativen existieren).

- [x] **Präzision:** Entity-Confusion (z.B. Therme Erding vs. Hallenbad Erding) durch Standort-Validierung im Such-Prompt minimiert.

- [x] **Transparenz:** Confidence Scores (0.0-1.0) und "Proof Snippets" (Original-Textfragmente) in die Datenbank integriert.

- [x] **UI:** Confidence-Ampel und Tooltip für Quellen-Beweise im Frontend implementiert.

- [x] **Integrität:** Fehlende API-Endpunkte für Firmen-Erstellung, Bulk-Import und Wiki-Overrides wiederhergestellt.

## Persona Segmentierung & Rollen-Matching (v0.9.0 - Abgeschlossen)

- [x] **Database Portability:** Up- & Download der SQLite-Datenbank direkt im UI implementiert (inkl. automatischem Backup).
- [x] **Pattern Optimizer:** Asynchrones KI-System zur automatischen Generierung von Regex-Mustern aus Einzelregeln.
- [x] **Konflikt-Management:** KI-gestützte Prüfung von Regex-Regeln gegen andere Rollen (Negative Examples) zur Vermeidung von Fehlzuordnungen.
- [x] **Regex Sandbox:** Interaktives Test-Tool im Frontend zur Validierung von Mustern gegen echte Jobtitel.
- [x] **Smart Suggestions:** Live-Analyse der Datenbank zur Anzeige häufiger Schlüsselwörter als Klick-Vorschläge.
- [x] **Robustheit:** Implementierung eines AST-basierten Parsers für komplexe Regex-Escaping-Szenarien.

## Lead Engine: Tradingtwins Automation (In Arbeit)

- [x] **E-Mail Ingest:** Automatisierter Import von Leads aus dem Postfach `info@robo-planet.de` via Microsoft Graph API.
- [x] **Parsing:** Strukturierte Extraktion von Bedarfsdaten (Fläche, Zweck, Funktionen) aus Tradingtwins-HTML.
- [x] **Contact Research:** KI-gestützte Rollen-Identifizierung via SerpAPI und Gemini 2.0 Flash.
- [x] **CE-Sync:** Automatisches Anlegen von Firmen und Kontakten im Company Explorer inkl. Role-Mapping.
- [x] **Drafting:** E-Mail-Generator auf "Human Expert Level" mit Branchen-Fokus und ROI-Argumentation.
- [x] **UI: Visuelle Unterscheidung:** Leads nach Herkunft (TradingTwins vs. Website-Formular) optisch differenziert.
- [x] **UI: Status-Indikatoren:** Synchronisationsstatus (CE) und Low-Quality-Warnungen direkt im Lead-Header sichtbar.
- [x] **Drafts: Persistente Speicherung:** Generierte E-Mail-Entwürfe werden dauerhaft in der Datenbank gespeichert.
- [ ] **IT-Klärung:** Microsoft Bookings Berechtigungen (`Bookings.Read.All`, `BookingsAppointment.ReadWrite.All`) für die Entra App anfragen und "Admin Consent" einholen.
- [ ] **Infrastruktur:** Korrekten Buchungslink (persönliches Konto) ermitteln und in der `.env` (Variable `BOOKING_LINK`) hinterlegen.
- [ ] **CRM-Integration:** Modul "Push to SuperOffice" entwickeln, um Personen und E-Mail-Entwürfe (als Aufgabe/Aktivität) direkt im CRM anzulegen.
- [ ] **Daten-Synchronisation:** Notion-Produktdatenbank in die lokale DB spiegeln, um Produktauswahl und ROI-Berechnung zu dynamisieren.
- [ ] **Logik:** ROI-Kalkulation im E-Mail-Entwurf auf Basis von echten Leistungsdaten (m²/h) und Preisen schärfen.
- [ ] **UI:** "Copy to Clipboard" Funktion für den fertigen Entwurf in der Web-App finalisieren.
- [ ] **Phase 2: Intelligente Antworten für Kontaktformulare:** Entwicklung einer kontextbezogenen Antwortlogik für Website-Formular-Leads (zunächst allgemeine Bestätigung, später KI-gestützt auf Nachrichtsinhalt basierend).

## Heatmap Tool (Standalone)

### Status: Beta (Funktionsfähig mit Basisfunktionen)

- [x] **Setup:** Projektstruktur mit FastAPI (Backend) und React/Vite (Frontend) aufgesetzt.
- [x] **Daten:** Upload von XLSX-Dateien und automatische PLZ-Erkennung implementiert.
- [x] **Visualisierung:** Leaflet-Karte mit "Points"-Ansicht (CircleMarker) und "Heatmap"-Ansicht (Density) erstellt.
- [x] **Interaktivität:** Dynamische Filterung nach Spaltenwerten implementiert.
- [x] **UI/UX:** Filter-Panel redesignet (Checkboxen, Collapsible) und Tooltip-Manager integriert (Drag & Drop, Sichtbarkeit).
- [x] **Clustering:** Marker Clustering für die Punkte-Ansicht implementiert.
- [x] **Fix:** Docker-Networking Probleme (Vite Proxy) gelöst.
- [x] **Fix:** Infinite-Loop bei zoom-adaptiver Legende durch Revert behoben (Feature als instabil markiert).

### Offene Punkte & Erweiterungen

- [ ] **Export:** Funktion "Karte als PNG speichern" implementieren.
- [ ] **Geo-Aggregation:** Aggregation nach Bundesland und Landkreis hinzufügen.
- [ ] **Multi-Layer:** Vergleichsansicht (z.B. Kunden vs. Techniker) durch zweiten Datei-Upload ermöglichen.

