Files
leistungsbilanz-ts/docs/spec/02-functional-requirements.md
T
2026-05-03 19:15:46 +02:00

145 lines
3.1 KiB
Markdown

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