docs: Spec A11 - Ist-Serie als reservierter Name System-Ist
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,8 +8,9 @@
|
||||
|
||||
## Nutzerentscheidungen (2026-09-28)
|
||||
|
||||
- Szenario-Vergleich vor heute: **Ist-Gesamtsaldo als eigene Serie „Ist"**,
|
||||
Szenario-Kurven erst ab heute.
|
||||
- Szenario-Vergleich vor heute: **Ist-Gesamtsaldo als eigene Serie
|
||||
„System-Ist"** (bewusst systemeigen benannt, Name für Szenarien
|
||||
reserviert), Szenario-Kurven erst ab heute.
|
||||
- Veraltete Szenarien: **automatisch neu rechnen** beim Seitenaufruf.
|
||||
- Planungs-Diagramm: **Einnahmen + Ausgaben mit Vorzeichen** (Semantik wie
|
||||
„Monat nach Kategorie").
|
||||
@@ -54,7 +55,7 @@
|
||||
|
||||
Neue Definition, Spalten unverändert (`scenario, day, balance`):
|
||||
|
||||
1. **Ist-Serie:** `SELECT 'Ist', day, balance FROM v_balance_total`
|
||||
1. **Ist-Serie:** `SELECT 'System-Ist', day, balance FROM v_balance_total`
|
||||
(reicht bis `CURRENT_DATE`).
|
||||
2. **Szenario-Startpunkt:** je Szenario mit mindestens einem
|
||||
Projektionspunkt eine Zeile `(s.name, CURRENT_DATE, <Ist-Saldo heute>)`
|
||||
@@ -71,8 +72,15 @@ stehen (ist bereits so; Reihenfolge beibehalten). Achtung: DROP … CASCADE
|
||||
von `v_balance_total` im Fallback-Pfad würde `v_projection` mitreißen — da
|
||||
`v_projection` danach ohnehin neu angelegt wird, ist das unkritisch.
|
||||
|
||||
Bekannte Grenze: ein Szenario namens „Ist" würde mit der Ist-Serie
|
||||
verschmelzen. Wird hingenommen (keine Namensvalidierung eingeführt).
|
||||
Reservierter Name: Die Serienbezeichnung `System-Ist` ist als Modul-Konstante
|
||||
(`RESERVED_SCENARIO_NAME` in `models/views.py`, dort auch in der View-SQL
|
||||
verwendet) hinterlegt. `routers/scenarios.py` lehnt `POST` und `PATCH` mit
|
||||
diesem Namen (Vergleich nach `strip().casefold()`) mit **422** und der
|
||||
Meldung „Der Name »System-Ist« ist für die Ist-Kurve reserviert" ab, damit
|
||||
kein Szenario mit der Ist-Serie verschmelzen kann. Bestandsszenarien mit
|
||||
diesem Namen existieren nicht (live geprüft: 3 Szenarien, andere Namen).
|
||||
Tests: POST/PATCH mit `System-Ist`, `system-ist`, ` System-Ist ` → 422;
|
||||
normale Namen unverändert 201/200.
|
||||
|
||||
### 2b. Automatisches Neurechnen (`services/projection_service.py`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user