From bf83fbcb656a2a01ebad9c4f60e3a07107e0ba6f Mon Sep 17 00:00:00 2001 From: Moltbot-Jarvis Date: Wed, 18 Feb 2026 11:55:55 +0000 Subject: [PATCH] docs: Define first task for CLI execution (Excel Import) --- TASKS.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 TASKS.md diff --git a/TASKS.md b/TASKS.md new file mode 100644 index 00000000..8b385b02 --- /dev/null +++ b/TASKS.md @@ -0,0 +1,43 @@ +# TASKS.md - Offene Entwicklungs-Aufgaben + +Dieses Dokument dient als zentrale Quelle für klar definierte Entwicklungs-Tasks. + +--- + +## 1. Task: Excel-Import für CRM-Bestandsdaten + +**Ziel:** Importieren einer Excel-Liste mit SuperOffice-Bestandsdaten in die Company Explorer Datenbank. + +**Status:** `[TODO]` + +**Dateien:** +* **Neu erstellen:** `company-explorer/backend/scripts/ingest_superoffice_excel.py` + +**Anforderungen & Logik:** + +1. **Abhängigkeiten:** Das Skript muss `pandas` und `openpyxl` verwenden, um die Excel-Datei zu lesen. +2. **Dateipfad:** Das Skript soll einen Dateipfad als Kommandozeilen-Argument akzeptieren (z.B. `python ... ingest.py /pfad/zur/datei.xlsx`). +3. **Datenbank-Verbindung:** Das Skript muss eine Verbindung zur `companies_v3_fixed_2.db` herstellen (die SQLAlchemy-Modelle aus `backend/database.py` nutzen). +4. **Spalten-Mapping:** Die Excel-Datei wird folgende Spalten haben (oder ähnlich): + * `Account ID` -> `crm_id` + * `Name` -> `crm_name` + * `Website` -> `crm_website` + * `Straße`, `PLZ`, `Stadt` -> `crm_address` (als formatierter String) + * `Ust ID` -> `crm_vat` + * `Branche` -> `industry_crm` +5. **Import-Logik (pro Zeile):** + * **Prüfe auf Dubletten:** Suche in der `companies` Tabelle, ob eine Firma mit der gleichen `website` (falls vorhanden) oder `name` **und** `city` bereits existiert. + * **Fall 1: Firma existiert (Match):** + * Aktualisiere den bestehenden Datensatz: Trage die `crm_id`, `crm_name`, `crm_address` etc. in die `crm_*` Felder ein. + * Setze den `status` auf `TO_ENRICH` (falls er `NEW` war). + * **Fall 2: Firma ist neu:** + * Lege einen neuen Datensatz in der `companies` Tabelle an. + * Befülle die `crm_*` Felder mit den Daten aus der Excel-Zeile. + * Setze den `name` und `website` (die "Golden Record"-Felder) initial ebenfalls auf die CRM-Werte. + * Setze den `status` auf `TO_ENRICH`. + +**Akzeptanzkriterien:** +* Nach Ausführung des Skripts sind die Firmen aus der Excel-Datei in der `companies_v3_fixed_2.db` sichtbar. +* Bestehende Firmen werden mit CRM-Daten angereichert, neue Firmen werden angelegt. + +---