Add external model persistence foundation

This commit is contained in:
2026-08-02 17:18:24 +02:00
parent d0fc1a7caf
commit 76493b573e
15 changed files with 3207 additions and 8 deletions
+16 -3
View File
@@ -500,8 +500,20 @@ einschließlich BOM, CRLF und Quotierung bytegleich zurück. Der lokale Befehl
je Projekt. `external-csv-configuration.update` schreibt Anlage, Änderung oder
Entfernung zusammen mit Revision und persistentem Undo/Redo. Snapshot-Schema 3,
Restore und portabler Projekttransfer enthalten diesen Zustand; beim Duplizieren
werden Konfigurations-UUID und Projektlink remapped. Persistente externe Objekte
und die bestätigte Importübernahme sind noch nicht implementiert.
werden Konfigurations-UUID und Projektlink remapped.
Migration `0003` ergänzt die relationale Grundlage für genau eine implizite
`revit_csv`-Quelle je Projekt, geordnete Importbatches, normalisierte
Quellraummappings und über `(sourceId, ifcGuid)` eindeutige externe Objekte.
Batches halten Konfigurationssnapshot, Originalbytes und die klassifizierte
Zellmatrix zusammen. Quellwerte, lokale Planungswerte und Override-Metadaten
der Objekte sind getrennt; optionale Links auf Raum, Verteilung, ProjectDevice
und CircuitDeviceRow bleiben nullable. `ExternalModelStateRepository` liest den
vollständigen Zustand deterministisch und unterscheidet unbekannte von noch
nicht importierten Projekten. Der letzte bestätigte Batch wird aus der
Batchreihenfolge abgeleitet statt redundant an der Quelle gespeichert.
Snapshot/Transfer v4, Import-Command und bestätigte Importübernahme sind noch
nicht implementiert; bloße Vorschau erzeugt weiterhin keine dieser Zeilen.
`GET` und `PUT /api/projects/:projectId/external-csv/configuration` lesen oder
ändern die Konfiguration; der PUT plant Identität und nächsten
Konfigurationsstand serverseitig und verwendet den typisierten Command.
@@ -519,7 +531,8 @@ Response verfügbar, ohne alle Zeilen in den DOM einzufügen.
## Noch nicht unterstützt
- Mehrbenutzerbetrieb und Konfliktauflösung
- vollständiger Revit-/CSV-/IFCGUID-Round-trip über die vorhandene Grundlage hinaus
- bestätigter Revit-Erstimport und vollständiger CSV-/IFCGUID-Round-trip über
die vorhandene Transport- und Persistenzgrundlage hinaus
- vollständige elektrische Dimensionierung
- Produktionsdeployment
@@ -3,10 +3,10 @@
## Status
Phase 14.0 ist abgeschlossen und freigegeben. Dieses Dokument beschreibt den
gegen den aktuellen Code geprüften Zielzuschnitt. Phase 14.1 befindet sich in
Umsetzung; Transportverträge, Konfigurationsvalidatoren, die zustandsfreie
CSV-Transportgrundlage und die persistente projektweite Konfiguration sind
vorhanden.
gegen den aktuellen Code geprüften Zielzuschnitt. Phase 14.1 ist abgeschlossen.
Phase 14.2 hat mit den externen Domänenverträgen, Identitätsregeln und dem
additiven Persistenzschema begonnen; eine bestätigte Importübernahme existiert
noch nicht.
Fachliche Quelle bleibt
[Revit-CSV-Integration Anforderungen und Implementierungsanweisung](revit-csv-integration-requirements.md).
@@ -81,7 +81,8 @@ jeweilige englische Pluralform in `snake_case`.
- stabile interne UUID;
- `projectId`;
- technischer Name und Quelltyp `revit_csv`;
- Verweis auf den zuletzt bestätigten Importbatch.
- der zuletzt bestätigte Importbatch wird aus der geordneten Batchhistorie
abgeleitet und nicht als redundanter Zeiger gespeichert.
In der ersten Ausbaustufe wird genau eine Quelle je Projekt automatisch
angelegt. Es gibt bewusst keine sichtbare Mehrquellenverwaltung. Die
@@ -268,6 +269,9 @@ einen Commit aufgenommen.
### 14.2 Persistente Objekte und Erstimport
1. Schema, Repositories und reine Identitäts-/Matchingregeln ergänzen.
**Erledigt:** Migration `0003`, vollständiger externer Read-State sowie
exaktes IFCGUID-, Raum- und Familie-und-Typ-Matching sind vorhanden. Es gibt
weiterhin keinen Import-Write außerhalb eines Commands.
2. Snapshot v4, Restore und Projektduplikat samt UUID-Remapping ergänzen.
3. Erstimport-Command mit echten SQLite-Commit-/Rollback-Tests ergänzen.
4. Raum-, Verteilungs-, Klassifizierungs- und ProjectDevice-Schritte im Wizard