# Architektur ## Systemkontext Article Data Manager ist ein lokales Werkzeug zur Erzeugung einer RollCalc-kompatiblen `article-data.json`. RollCalc ist ein externer Konsument und bleibt technisch getrennt. ## Verantwortlichkeiten - Import vorhandener RollCalc-Artikeldaten. - Import eines ERP-CSV-Exports. - Import manuell gepflegter Zusatzdaten. - Normalisierung technischer Formate, ohne fachliche Bedeutungen zu erraten. - Validierung und Konflikterkennung. - Deterministischer Export fuer RollCalc. - Reports fuer Treffer, Nicht-Treffer, Konflikte und Validierungsfehler. ## Modulgrenzen - `models`: interne Datenmodelle. - `importers`: Lesen von JSON- und CSV-Quellen. - `validation`: Format-, Typ- und Fachvalidierung. - `merge`: Merge-Regeln, Konflikterkennung und Prioritaeten. - `exporters`: Ausgabe der RollCalc-kompatiblen JSON-Datei. - `cli`: spaetere Kommandozeile. ## Datenfluss ```text data/source/erp/production-key-data.csv data/source/rollcalc/article-data.json data/manual/article-manual-data.csv | v Import -> Normalisierung -> Validierung -> Merge -> Export | +--> data/reports/ +--> data/generated/article-data.json ``` ## Datentrennung Quelldaten, manuelle Daten und generierte Daten bleiben physisch und logisch getrennt. Produktive Dateien in `data/` und `incoming/` werden nicht versioniert. ## Erweiterbarkeit Weitere Quellen sollen als eigene Importer angebunden werden. Jede Quelle muss Originalfeldnamen, Einheiten, Prioritaet und Konfliktverhalten dokumentieren. ## Spaetere Weboberflaeche Eine lokale Weboberflaeche ist erst nach einem reproduzierbaren CLI-Merge sinnvoll. Sie soll manuelle Zusatzdaten pflegen, ERP-Werte anzeigen und Eingaben validieren, aber keine Quelldaten direkt ueberschreiben. ## Spaetere Datenhaltung Phase 4 kann SQLite als lokale Datenbasis einfuehren. PostgreSQL ist nur sinnvoll, wenn Mehrbenutzerbetrieb, zentrale Freigaben oder Integrationen dies tatsaechlich erfordern. ## RollCalc als externer Konsument RollCalc konsumiert ausschliesslich die exportierte `article-data.json`. Aenderungen am Ausgabeformat muessen mit der RollCalc-Kompatibilitaet abgeglichen und dokumentiert werden.