Datenmodell Kern: Projekt, PFA, Vertrag, LV, Nachtrag, Dokument

- Mandant, Auftragnehmer, Projekt mit Suchreihenfolge, Abschnitt (PFA), Vertrag,
  Leistungsverzeichnis, Nachtrag (MKA nur als Bezug), Nachtragsposition, Dokument
- Projektmitglieder mit Projektrolle, Freigaben für vertrauliche Dokumente
- Mandant, Land und Projekt werden vom übergeordneten Datensatz übernommen;
  Fehlzuordnungen über Mandanten oder Projekte hinweg werden abgewiesen
- Feste Morph-Map, Factories, Demodaten (Musterbahn, PFA 1–4, N14/N16/N21), Tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Christoph
2026-10-05 08:34:24 +02:00
co-authored by Claude Opus 5.5
parent ca09d23a78
commit 6aac8b0a16
37 changed files with 1855 additions and 2 deletions
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Enums;
/** Art eines hochgeladenen Dokuments. */
enum DokumentKategorie: string
{
case LvX86 = 'lv_x86';
case LvD86 = 'lv_d86';
case LvPdf = 'lv_pdf';
case NachtragsLvX86 = 'nachtrags_lv_x86';
case NachtragsLvD86 = 'nachtrags_lv_d86';
case NachtragsLvPdf = 'nachtrags_lv_pdf';
case Anschreiben = 'anschreiben';
case Anlage = 'anlage';
case Vorlage = 'vorlage';
case Sonstiges = 'sonstiges';
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace App\Enums;
/** Land mit eigenen Regeln (Normen, Begriffe, Anspruchsgrundlagen). */
enum Land: string
{
case DE = 'DE';
case AT = 'AT';
}
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace App\Enums;
/** Bearbeitungsstand eines Nachtrags. */
enum NachtragStatus: string
{
case Eingegangen = 'eingegangen';
case Vorgeprueft = 'vorgeprueft';
case InPruefung = 'in_pruefung';
case Geprueft = 'geprueft';
case Exportiert = 'exportiert';
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Enums;
/** Lebenszyklus eines Projekts; archivierte Projekte sind schreibgeschützt. */
enum ProjektStatus: string
{
case Aktiv = 'aktiv';
case Abgeschlossen = 'abgeschlossen';
case Archiviert = 'archiviert';
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Enums;
/** Rolle eines Benutzers innerhalb eines Projekts. */
enum Projektrolle: string
{
case Projektleiter = 'projektleiter';
case Bearbeiter = 'bearbeiter';
case Leser = 'leser';
}
+12
View File
@@ -0,0 +1,12 @@
<?php
namespace App\Enums;
/** Stand der Verarbeitung im Hintergrund (Import, Texterkennung, Indexierung). */
enum VerarbeitungStatus: string
{
case Wartet = 'wartet';
case Laeuft = 'laeuft';
case Fertig = 'fertig';
case Fehler = 'fehler';
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace App\Enums;
/** Vertragsgrundlage eines Projekts. */
enum Vertragsgrundlage: string
{
case VobB = 'vob_b';
case Bgb = 'bgb';
}