Fachmodell
Erläutert die Lastenheft-Begriffe mit dem, was in meta_docs/ bereits entschieden oder betrieben wird. Keine neuen Muss-Anforderungen — bei Widerspruch gilt das Lastenheft.
Drei Stufen, nicht drei Flags
Operativ ist die GIS-Arbeit ein 3-Schritt-Workflow. Der CEO hat 2026-06 festgehalten: Rohdaten und normierte Trasse sind zwei Bestände, kein Statusflag in einer Tabelle.
| Stufe | Lastenheft-Name | Was es ist | Was es nicht ist |
|---|---|---|---|
| 1 | Planung / Rohinput project_client |
Unveränderte AG-Trasse (Dateien + übernommene Geometrie), nur dem Projekt zugeordnet | Kein Auftrag, kein Produkt, keine „saubere“ Netzgeometrie |
| 2 | Normierung | Interne, brauchbare Trasse: Filter, Umformatierung, Split/Merge erlaubt | Kein 1:1-Klon der Rohdaten |
| 3 | Produkt | Ergebnis eines Auftrags auf einem Abschnitt: Querung, VAO, TKG, Verkehrszeichen, Genehmigungsverlängerung — eigene Geometrie | Nicht die Planungslinie umetikettiert |
flowchart LR
files[AG-Dateien: Shape, PDF, …] --> raw[Planung / Rohinput]
raw -->|Kopie + Skripte + manuell| norm[Normierung]
norm -->|Auftrag auf Abschnitt| prod[Produkte]
raw -.->|Versionen| v1[Korrektur-Fassungen]
norm -.->|Versionen| v1
prod -.->|Versionen| v1
Warum zwei Trassen-Bestände (Kontext): Original bleibt Nachweis; Produkte dürfen nur an der normierten Qualität hängen; Transformation ist oft nicht 1:1. Eine manuelle Kopie Planung → Normierung legt eine neue Zeile an und speichert die Herkunft in source_object_id (sichtbar in den Attributen); danach sind die Geometrien unabhängig.
Arbeitsnamen aus älteren Notizen: fiber_routes_client (Roh) / fiber_routes_linetra (normiert). Verbindlich ist die Trennung, nicht der Tabellenname.
Auftrag und Abschnitt
Ein Auftrag im Lastenheft ist die Bearbeitung eines Abschnitts, nicht der ganzen AG-Lieferung. Der Abschnitt ist generisch (work_sections mit eigener Geometrie); Linearreferenz auf einer Trasse ist optional. Der Genehmigungsantrag hängt am Abschnitt, nicht an jeder Produktzeile.
Im heutigen Schema gibt es section_orders und projects als grobe Klammer. Das Lastenheft fordert die fachliche Kette Abschnitt → Auftrag → Produkte → Antrag. Ob Jira Quelle bleibt, ist Betrieb — nicht Lieferumfang.
Bestehende Leitplanken aus dem Kontext (nur soweit sie das Lastenheft stützen):
- Normierte Geometrie hängt am Projekt, nicht am Auftrag.
- Ein Produkt-Objekt gehört zu genau einem Auftrag; ein Auftrag kann viele Objekte haben.
route_idzur Normierung ist optional (Direktauftrag ohne Planung).- Produkt-Geometrie ist eigen — 1 000 m Planung können 10 000 m Produktstrecken enthalten.
- Vertikale (Glasfaser, Verkehrszeichen, Tunnel) sind Kind-Packs, keine eigenen Zentrumstabellen.
Produkte: gemeinsam und trotzdem eigene Tabellen
Lastenheft: geteiltes Hauptprodukt plus eigene Entities TKG und VAO mit eigenen Tabellen.
Dazu passt die bereits bestätigte Variante C (Hybrid):
- Stamm: was alle Produkte teilen (Geometrie, Status, Behördenbezug, KPIs, Auftrag, optional Route).
- Beilage 1:1: Fachfelder nur dieses Typs (bei Querungen existiert das Muster
crossing_enrichments). - Abgelehnt: eine Monolith-Tabelle mit allen Feldern, oder dieselbe Geometrie n-fach kopiert.
flowchart TB
stamm[Gemeinsamer Produkt-Stamm]
stamm --> tkg[TKG-Beilage]
stamm --> vao[VAO-Beilage]
stamm --> quer[Querung-Beilage]
stamm --> vz[Verkehrszeichen-Beilage]
stamm --> verl[Genehmigungsverlängerung-Beilage]
Genannte Produktarten im Lastenheft:
| Produkt | Kurz |
|---|---|
| Querung | Genehmigungsart, eigene Geometrie |
| Verkehrszeichen aufstellen | eigenes Produkt |
| Verlängerung der Genehmigung | eigenes Produkt |
| TKG | eigene Tabelle / Entity |
| VAO | eigene Tabelle / Entity |
Abrechnungs-Stammdaten products (product_id, Namen) sind kaufmännisch und kollidieren namensmäßig mit einem Geometrie-Stamm. Für GIS-Objekte einen anderen Namen wählen (Kontextvorschlag: geo_objects / vergleichbar) — das ist HOW, nicht Lastenheft.
Berichte und kundenspezifische Sets
Berichte sind Sichten auf Produkt + Stamm + Beilage, nicht ein dritter Geometriebestand.
- Pro Kunde ein Feld-Set (und abweichend je Gemeinde, wo nötig).
- Optional später: Felder aus Formular, API oder Scraper (Kann ED-12).
- Im Schema existieren bereits Anker für Behördenlogik (
jurisdictions,territorial_rules,admin_*) — nutzbar, sobald Sets konkret werden; kein Vorgriff.
Editor-Modi und Layer
Die drei Editor-Modi sind dieselben drei Stufen. Layer, Zeichnen und GIS-Import gelten immer nur für den aktiven Modus, damit Roh-, Norm- und Produktgeometrie nicht in einem Layer landen.
| UI | Fachlich |
|---|---|
| Modus Planung | Rohinput / project_client |
| Modus Normierung | normierte Trasse |
| Modus Produkt | Produkt-Geometrien des Auftrags |
| Werkzeugkasten | Punkt / Linie / Fläche je Modus |
| Kontext rechts | Koordinaten, Attribute |
| Klick-Popup | konfigurierbare Attributanzeige je Projekt und Geometrietyp |
.ltp |
ganzes Projekt: alle Layer und Daten |
| GIS-Import | nur in den aktiven Modus |
.ltp ist das Projektaustauschformat (ZIP + Magic-Header). Es ersetzt PostGIS nicht.
Dashboard vs. heutiges Web-CMS
| Web-CMS (Ist) | Dashboard (Soll) | |
|---|---|---|
| Nutzer | intern, Kunde | Planer, Behörde, Kunde |
| Stammdaten CRUD | ja | intern ja; Behörde nein |
| Karte | nur lesen | Anzeige/Analyse, kein Edit |
| Verfahren | nein | Statuskette, Auflagen, Audit |
| Kommentare / Chat / Tickets | ja | ja, plus Antragskommentar |
QGIS bleibt Exportziel (INT-01), parallel zum Editor.
Glossar
| Begriff | Bedeutung |
|---|---|
| Auftraggeber (AG) | Kunde, der die Roh-Trasse liefert |
project_client |
Rohinput-Trasse des AG |
| Planung | Stufe 1, Rohinput im Editor |
| Normierung | Stufe 2, interne Trasse |
| Auftrag | Bearbeitung eines Abschnitts, erzeugt Produkte |
| Antrag | Genehmigungsverfahren auf einem Abschnitt |
| Kind-Pack | Vertikale (z. B. glasfaser, verkehrszeichen) als Gruppe von GIS-Kinds |
| Produkt | Ergebnisgeometrie plus Fachdaten (Querung, TKG, VAO, …) |
| TKG / VAO | eigene Produkt-Entities mit eigenen Tabellen |
.ltp |
Linetra Projekt Package |
| SSOT | PostGIS, SRID 25832 |
| Version | nachvollziehbare Fassung nach Korrektur/Rücksprache |
Was der Kontext bewusst nicht ins Lastenheft hebt
Bleibt Betrieb oder späteres Backlog, solange ANFORDERUNGEN.md es nicht fordert: Jira-Import, Billing-Spalten an Organisationen, Soft-Delete von Orgs, Personen über mehrere Orgs, fiber_routes.order_id physisch droppen. Die Pipeline-Trennung selbst ist Lastenheft (ED-01, ED-04, ED-07).