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

3.1 KiB

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:

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:

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.