75 lines
3.6 KiB
Markdown
75 lines
3.6 KiB
Markdown
# Migrations-Plan: Legacy GSheets -> Company Explorer (Robotics Edition v0.8.5)
|
|
|
|
**Kontext:** Strategische Neuausrichtung der Lead-Analyse für RoboPlanet.
|
|
**Zentrale Philosophie:** Trennung von CRM-Historie ("Was wir wissen") und KI-Recherche ("Was aktuell wahr ist").
|
|
|
|
## 14. Detaillierte Logik der neuen Datenfelder (v2.0)
|
|
|
|
Um Gemini CLI (dem Bautrupp) die Umsetzung zu ermöglichen, hier die semantische Bedeutung und Implementierungs-Logik der neuen Spalten:
|
|
|
|
### 14.1 Qualitäts- & Abgleich-Metriken (Tabelle `companies`)
|
|
|
|
* **`confidence_score` (FLOAT, 0.0 - 1.0):**
|
|
* **Bedeutung:** Vertrauensindex der KI-Klassifizierung.
|
|
* **UI-Logik:**
|
|
* `>= 0.8`: Status "Grün". Vertrauenswürdige Daten.
|
|
* `0.5 - 0.79`: Status "Gelb". Erfordert manuellen Check (Review).
|
|
* `< 0.5`: Status "Rot". KI-Ergebnis unsicher.
|
|
* **Hintergrund:** Verhindert, dass Sniper-Texte auf Basis falscher Branchen-Zuordnungen generiert werden.
|
|
|
|
* **`data_mismatch_score` (FLOAT, 0.0 - 1.0):**
|
|
* **Bedeutung:** Metrik für die Abweichung zwischen SuperOffice-Bestand und Web-Recherche.
|
|
* **Rechenweg:** Die KI vergleicht Name, Adresse und Website.
|
|
* `0.0`: Identisch (Voll-Treffer).
|
|
* `0.5`: Teil-Mismatch (z.B. Firma heißt im Web leicht anders oder ist innerhalb der Stadt umgezogen).
|
|
* `1.0`: Voller Mismatch (Zwei komplett verschiedene Firmen).
|
|
* **UI-Ziel:** Im Inspector soll bei Werten `> 0.3` eine Warnung erscheinen: *"Achtung: Stammdaten weichen von Recherche ab!"*
|
|
|
|
* **`crm_name`, `crm_address`, `crm_website`, `crm_vat`:**
|
|
* **Zweck:** Read-Only Snapshot aus SuperOffice.
|
|
* **Wichtig:** Diese Felder werden nie durch die Web-Recherche überschrieben. Sie dienen dem Side-by-Side Vergleich.
|
|
|
|
* **Status-Flags:**
|
|
* **`website_scrape_status`**: Zeigt an, ob die Firmenwebsite erfolgreich ausgelesen wurde (`SUCCESS`, `FAILED`, `BLOCKED`).
|
|
* **`wiki_search_status`**: Dokumentiert, ob ein Wikipedia-Eintrag gefunden wurde (`FOUND`, `NOT_FOUND`).
|
|
|
|
### 14.2 Strategie-Parameter (Tabelle `industries`)
|
|
|
|
* **`pains` / `gains`:**
|
|
* Enthalten formatierte Textblöcke.
|
|
* **Struktur:**
|
|
`[Primary Product: Cleaning]`
|
|
`- Pain A`
|
|
`- Pain B`
|
|
|
|
`[Secondary Product: Service]`
|
|
`- Pain C`
|
|
* **Anforderung:** Das Frontend muss diese Blöcke sauber formatiert (whitespace-aware) anzeigen.
|
|
|
|
* **`ops_focus_secondary` (BOOLEAN):**
|
|
* **Strategischer Hebel:** Wenn auf `True` gesetzt, muss die Lead-Engine für operative Rollen (z.B. "Pflegedienstleitung") automatisch das Sekundärprodukt wählen, da hier der "Teller-Transport" wichtiger ist als die "Bodenreinigung".
|
|
|
|
---
|
|
|
|
## 15. Anweisungen für Gemini CLI (Arbeitspakete)
|
|
|
|
### Task 1: UI-Implementierung "Data Match & Strategy"
|
|
|
|
**1. Inspector.tsx (Account Detail):**
|
|
* Implementiere eine `CRMComparisonCard`.
|
|
* Vergleiche `crm_name` vs `name` und `crm_website` vs `website`.
|
|
* Visualisiere den `data_mismatch_score` als Ampel oder Score-Balken.
|
|
* **Fix:** Korrigiere den Aufruf der `ContactsManager` Komponente (erwartet `contacts` Array).
|
|
|
|
**2. RoboticsSettings.tsx (Settings):**
|
|
* Erweitere die `Industries`-Tabelle um die Spalten `Pains`, `Gains`, `Priorität` und `Secondary Product`.
|
|
* Ermögliche das Ein-/Auskappen von langen Pain-Texten zur besseren Übersicht.
|
|
|
|
---
|
|
|
|
## 16. Deployment-Referenz (NAS)
|
|
|
|
* **Pfad:** `/volume1/homes/Floke/python/brancheneinstufung/company-explorer`
|
|
* **DB:** `/app/companies_v3_fixed_2.db`
|
|
* **Sync:** `docker exec -it company-explorer python backend/scripts/sync_notion_to_ce_enhanced.py`
|