specs for rewrite

This commit is contained in:
2026-05-03 19:15:46 +02:00
parent 60771b5929
commit 49190c5d7e
10 changed files with 1534 additions and 359 deletions
+144
View File
@@ -0,0 +1,144 @@
# Functional Requirements: Circuit List Inside a Distribution Board
## Scope
This specification focuses only on the circuit list inside one distribution board.
Out of scope for this document:
- project management
- user accounts
- permissions
- full tender export
- CAD integration
- full norm-compliant electrical calculation
- cloud deployment
The first goal is a fast, spreadsheet-like editor for creating, editing, sorting and restructuring circuit lists.
## Sections
The circuit list is grouped into sections.
Default sections:
| Section | Default prefix |
|---|---|
| Lighting | `-1F` |
| Single-phase circuits | `-2F` |
| Three-phase circuits | `-3F` |
Sections are displayed as separator rows in the table, not as normal visible data columns.
Example:
```text
Lighting
-1F1 Beleuchtung Flur
-1F2 Beleuchtung Außen
Single-phase circuits
-2F1 Arbeitsplatzsteckdosen Büro
-2F2 Handtrockner WC
Three-phase circuits
-3F1 Durchlauferhitzer
```
Internally, every circuit belongs to a section. In the UI, the section is shown as a grouping separator.
## Future Section Configuration
Sections and numbering prefixes should later be configurable per project.
Future project configurations may support:
- one continuous numbering sequence without lighting/single-phase/three-phase separation
- numbering grouped by RCD
- numbering grouped by functional area
- custom prefixes and suffixes
- custom section names
The first implementation may use the default sections, but the structure must not permanently hardcode them.
## Circuit Numbering / Equipment Identifiers
Each circuit has an equipment identifier.
Examples:
- `-1F1`
- `-1F2`
- `-2F1`
- `-2F2`
- `-3F1`
Default convention:
- `-1Fx` = lighting circuits
- `-2Fx` = single-phase circuits
- `-3Fx` = three-phase circuits
When a new circuit is created, the next identifier is calculated as:
```text
highest existing number in the section + 1
```
Example:
Existing identifiers in single-phase section:
- `-2F1`
- `-2F2`
- `-2F5`
New circuit receives:
- `-2F6`
Gaps are not filled automatically.
Gaps may be closed only by:
- manually editing equipment identifiers
- explicitly using a renumbering action
## Renumbering
The app must never automatically renumber existing circuits after:
- inserting a circuit
- deleting a circuit
- moving a circuit
- moving a device
- sorting a section
- dragging rows
- changing a device
- synchronizing a linked project device
Renumbering only happens through an explicit user action.
Each section has a "Renumber section" action.
The renumbering action:
- keeps the current visual order
- updates only circuits in that section
- ignores device rows for numbering
- does not affect other sections
- uses the section prefix
## Reserve / Empty Circuits
Empty circuits are allowed.
An empty circuit may be used as a reserve circuit.
If the last device is removed from a circuit, the user may choose:
- keep empty circuit as reserve
- delete circuit completely
- cancel
Reserve circuits remain visible and keep their equipment identifier unless manually changed or explicitly renumbered.