Files

59 lines
2.2 KiB
Markdown

# 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.