Gebäudestruktur: neue Ebene „Gebäude“ über Etagen und eigene Seite Gebäude → Etagen → Räume #6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Projekte mit mehreren Gebäuden sollen sich sauber gliedern lassen. Dafür bekommen Etagen eine übergeordnete Ebene Gebäude. Die Pflege von Gebäuden, Etagen und Räumen zieht von der Projektübersicht auf eine eigene Seite mit eigenem Eintrag in der Seitenleiste.
Bevor ich das als Branch baue, würde ich gern mit dir abstimmen, ob das Datenmodell so in dein System passt. Es berührt Befehle, Snapshots und Transfer.
Vorschlag Datenmodell
buildings:id,project_id(FK, cascade),name,sort_orderfloors.building_id: nullable FK aufbuildings. Bestehende Etagen bleiben ohne Gebäude und erscheinen als „Ohne Gebäude“. Es gibt keine Zwangsmigration und kein automatisch angelegtes Standardgebäude.Befehle, Undo/Redo, Snapshots
project-floor.*:project-building.insert,project-building.update,project-building.delete, jeweils mit Inverseproject-floor.updatebzw.project-floor.insertbekommenbuildingIdals neue Payload-Version. Die alte Version bleibt lesbar, ein fehlendes Feld behält den aktuellen Wert, so wie beiproject.update-settingsv2 → v3.buildingsundfloor.buildingId. Ältere Snapshots laufen über den Upgrade-Pfad mit leerer Gebäudeliste undbuildingId = null.feature/print-view, weil dort Migration 0007/0008 und Snapshot-Schema 6 liegen. Die Migration wäre dann 0009.Oberfläche
/projects/:projectId/strukturmit drei Spalten Gebäude → Etagen → RäumeFragen an dich
buildingsmit nullablefloors.building_id, oder hast du für Gebäude schon etwas anderes vorgesehen, etwa aus Revit?Wenn das für dich passt, baue ich es als Branch
feature/building-structuremit Tests und Doku, wie bei den anderen Branches.Branch vorbereitet:
feature/building-structure(Basisfeature/print-view).Umgesetzt wie oben vorgeschlagen:
buildings+ nullablefloors.building_id(Migration0009)project-building.insert/.update/.deletemit Inversen; Löschen wird bei zugeordneten Etagen abgelehntbuildingId. Version-1-Befehle aus bestehender Historie werden vor Ausführung und Speicherung mitbuildingId = nullhochgestuft; Vorwärts- und Inversbefehl haben dadurch dieselbe Version./projects/:id/strukturmit drei Spalten, die sich gegenseitig filtern; die Seitenleiste bleibt auf allen Seiten außer der Seitenansicht sichtbardocs/building-structure.md, API-Doku, AGENTS.mdGeprüft: alle drei
tsc-Konfigurationen,npm test448/448 auf dem Branch, 480/480 zusammen mit den übrigen offenen Branches, Produktions-Build, Migration auf einer bestehenden Datenbank, Browsertest (Anlegen, Zuordnen, Filtern, Löschsperre, Undo/Redo).Deine Fragen 1–4 oben sind weiter offen. Das Datenmodell lässt sich noch ändern, solange der Branch nicht gemergt ist.
Danke, das passt so, wie es umgesetzt ist. Integriert mit #16 (Merge-Commit
868f48e7ac).buildingsmit optionalemfloors.building_idist bestätigt. Räume und Verteilungen bleiben an der Etage, das Gebäude ergibt sich daraus.docs/spec/revit-csv-integration-requirements.md, Abschnitt 1).Die Doku ist nachgezogen:
57a62b7e4a.