Systemarchitektur
Überblick
┌─────────────────┐ Bearer Token ┌──────────────────────┐
│ Vue.js Frontend │ ──────────────────── ▶│ Laravel API │
│ venturo.saw-sg.de │ ◀──────────────────── │ api.saw-sg.de/v1 │
└─────────────────┘ JSON Response └──────────┬───────────┘
│
┌───────────▼───────────┐
│ MariaDB / MySQL │
│ (vto_* Tabellen) │
└───────────────────────┘Simulation Engine
Die Engine ist eine sequenzielle Processor-Pipeline. Jeder Tick durchläuft dieselben Schritte in fester Reihenfolge.
POST /simulation/{id}/tick
│
▼
SimulationEngine::tick()
│
├── 1. TimeProcessor Tick +1, Datum voranschreiten
├── 2. BureaucracyProcessor (Phase 2)
├── 3. CustomerProcessor (Phase 3)
├── 4. FinanceProcessor (Phase 3)
├── 5. TaxProcessor (Phase 3)
├── 6. GrowthProcessor (Phase 6)
├── 7. EventProcessor (Phase 2)
├── 8. KpiProcessor Monatlicher Snapshot
└── 9. AchievementProcessor (Phase 6)
│
▼
DB::transaction() — alles oder nichtsTickContext
Geteilter Zustand zwischen allen Processors. Kein Processor schreibt direkt in die DB — er trägt Änderungen in den Context ein. Am Ende persistiert die Engine alles in einer einzigen DB-Transaction.
$context->advance(1); // Zeit voranschreiten
$context->addEvent('type', ...); // Event vormerken
$context->addTransaction('income', 49.00, 'Kundenzahlung', 'revenue');Tick-Geschwindigkeit
| tick_speed | Tage pro Klick |
|---|---|
day | 1 Tag |
week | 7 Tage |
month | 30 Tage |
KPI-Snapshots
Werden monatlich (wenn monthChanged = true) gespeichert. Basis für alle Charts — vorberechnet, sofort abfragbar.
Datenbank
Prefix: vto_ (konfigurierbar via DB_PREFIX in .env)
53 Tabellen in 12 Domänen (Platform, Kern, Bürokratie, Kunden, Finanzen, Personal, Wachstum, Institutionen, Investoren, Gamification, KI, Connector)
Migrations-Reihenfolge: 6 Stufen nach FK-Abhängigkeiten (siehe backend/database/migrations/)
Authentifizierung
Laravel Sanctum mit Bearer Token (kein Cookie/CSRF).
POST /v1/auth/login → { token: "1|abc..." }
GET /v1/auth/me → Authorization: Bearer 1|abc...Deployment
Monorepo (venturo/) mit zwei Apps in Coolify:
backend/→ api.saw-sg.de (Laravel + PHP-FPM + Nginx + Supervisor)frontend/→ venturo.saw-sg.de (Multi-Stage Docker: Node build → Nginx)docs/→ docs.saw-sg.de (VitePress static)
Auto-Deploy bei git push origin main via GitHub-Webhook.