Document protected circuit groups
This commit is contained in:
@@ -17,13 +17,15 @@ The pure grid modules have no React state and are covered by focused unit tests.
|
||||
## Domain Model Overview
|
||||
|
||||
- `CircuitSection`
|
||||
- Groups circuits by planning section (for example lighting, single-phase, three-phase).
|
||||
- Owns section metadata (`key`, `displayName`, `prefix`, ordering).
|
||||
- Represents a protected circuit group in one of the categories lighting,
|
||||
single-phase or three-phase.
|
||||
- Owns category, positive group number, generated prefix, display name and
|
||||
ordering.
|
||||
- `Circuit`
|
||||
- Core electrical unit in the list.
|
||||
- Owns circuit-level identifiers and technical data:
|
||||
- `equipmentIdentifier` (BMK)
|
||||
- protection data
|
||||
- one explicit one-to-one protection device
|
||||
- cable data
|
||||
- reserve state
|
||||
- voltage and optional control requirement for future sizing
|
||||
@@ -43,6 +45,10 @@ The pure grid modules have no React state and are covered by focused unit tests.
|
||||
- `ProjectDevice`
|
||||
- Reusable device template entity at project level.
|
||||
- Can be linked to `CircuitDeviceRow` entries, with copied display values on insert.
|
||||
- `DistributionBoardComponent`
|
||||
- Represents fixed header components, optional group protection and manually
|
||||
named auxiliary footer devices with their own unique BMK.
|
||||
- Group protection may own a separate one-to-one protection configuration.
|
||||
- Retained legacy migration source
|
||||
- Old `consumers` rows, mappings and reports are available only to explicit
|
||||
database upgrade tooling.
|
||||
@@ -77,7 +83,9 @@ Section-level `-frei-` placeholder rows represent insertion targets for creating
|
||||
`equipmentIdentifier` / BMK is circuit-owned (`Circuit.equipmentIdentifier`).
|
||||
|
||||
- Device rows do not have their own BMK.
|
||||
- Existing identifiers must stay stable unless explicitly changed by user action.
|
||||
- Existing identifiers stay stable on sort, insert and delete. Explicit
|
||||
renumbering may change them, and a user-initiated complete-circuit move to
|
||||
another same-category group assigns the next target-group identifier.
|
||||
- Renumbering is explicit, not implicit on move/sort/delete.
|
||||
|
||||
## Data Ownership Split: Circuit vs Device Row
|
||||
@@ -113,9 +121,9 @@ The sibling `/tree` route is a read-only structure preview. Old
|
||||
|
||||
## Future Persistence Direction
|
||||
|
||||
Persistent undo/redo, project revisions, logical snapshots, external-model exchange and PostgreSQL readiness are specified in [Project History and External Model Architecture](./project-history-and-external-model-architecture.md).
|
||||
|
||||
Critical multi-write commands already use explicit persistence transaction
|
||||
adapters. The next step is to compose these command boundaries into server-side,
|
||||
project-scoped revisions and change sets. Database backups remain separate from
|
||||
user-visible project snapshots.
|
||||
Persistent Undo/Redo, project revisions and logical snapshots are implemented
|
||||
through project-scoped commands and the shared transaction boundary. Database
|
||||
backups remain separate from user-visible project snapshots. External-model
|
||||
exchange and PostgreSQL readiness are specified in
|
||||
[Project History and External Model Architecture](./project-history-and-external-model-architecture.md)
|
||||
and remain future work.
|
||||
|
||||
Reference in New Issue
Block a user