No description
Block 5 — MAN-Abrechnung F06 (E6): Ein explizites Legacy-Vertragsende (grandfathered_until) deckelt jetzt Auswahl und Sperr-Nachprüfung: Beginnt die nächste Periode nach dem Vertragsende, gibt es keine Rechnung mehr. Neuer täglicher Befehl billing:expire-grandfathering (04:15, vor dem Rechnungslauf) setzt abgelaufene Posten auf gekündigt und schickt je Kunde eine Mail (GrandfatheringExpired). Auf der Dev-Kopie trägt kein Posten ein Vertragsende; der Fehler war latent. F16: Nicht abrechenbare Vereinbarungen bekommen einen Sperrvermerk (billing_hold_reason/-at), sichtbar auf der Admin-Zahlungsseite, und stehen im Rechnungslauf hinten an. Der Lauf arbeitet den fälligen Bestand in Seiten ab; --limit deckelt die erstellten Rechnungen (500), nicht die betrachteten Fälle. Vorher blockierten 50 unvollständige Fälle die 51. dauerhaft, und der Durchsatz war auf 50 am Tag begrenzt. Block 6 — Entwicklung F24: Lint-Workflow prüft mit pint --test statt zu formatieren; keine Schreibrechte mehr. F27: composer run dev startet beide Vite-Server (npm run dev:all). F28: docs/README.md als historischer Stand markiert, toter Link auf das Hub-Flux-Archiv korrigiert, aktueller Einstieg dev/README.md. F26: Login-Modal übernimmt den Fokus, hält Tab im Dialog und gibt den Fokus beim Schließen an den Auslöser zurück – ohne neue Abhängigkeit. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .agents/skills | ||
| .codex | ||
| .devcontainer | ||
| .github/workflows | ||
| _docs | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| dev | ||
| docs | ||
| lang | ||
| public | ||
| resources | ||
| routes | ||
| storage/debugbar | ||
| tests | ||
| .cursorrules | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .mcp.json | ||
| AGENTS.md | ||
| artisan | ||
| boost.json | ||
| CLAUDE.md | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.yml | ||
| package-lock.json | ||
| package.json | ||
| phpstan-baseline.neon | ||
| phpstan.neon | ||
| phpunit.xml | ||
| pint.json | ||
| Readme.md | ||
| setup-new-asset-urls.sh | ||
| tailwind.portal.config.js | ||
| tailwind.web.config.js | ||
| vite | ||
| vite.config.js | ||
| vite.portal.config.js | ||
| vite.shared.js | ||
| vite.web.config.js | ||
Multi-Domain Laravel-Anwendung
Übersicht
Diese Laravel-Anwendung unterstützt verschiedene Domains mit unterschiedlichen Styles:
- Haupt-Website: https://pressekonto.test (lokal) / https://pressekonto.de (live) – Haupt-Portal Admin-Page
- APP_PRESSEECHO: https://presseecho.test
- APP_BUSINESSPORTAL: https://businessportal24.test
Installation
- Repository klonen
- Abhängigkeiten installieren:
composer install npm install - Umgebungsvariablen konfigurieren (siehe
.env.exampleundDOMAINS-CONFIG.md) - Laravel-Anwendung initialisieren:
php artisan key:generate php artisan migrate - Assets kompilieren:
npm run build npm run build:admin npm run build:web
Domain-Konfiguration
Die Domains werden über die .env-Datei konfiguriert. Für detaillierte Anweisungen siehe DOMAINS-CONFIG.md.
Lokaler Entwicklungsserver
php artisan serve
Asset-Kompilierung
Diese Anwendung verwendet Vite mit verschiedenen Konfigurationen:
- Hauptkompilierung:
npm run devodernpm run build - Admin-Assets:
npm run build:admin - Web-Assets:
npm run build:web
Domain-Simulation
Während der Entwicklung können Domains simuliert werden, ohne die Hosts-Datei zu bearbeiten:
- In der
.env-Datei:DEV_SIMULATE_DOMAIN=true - Gewünschte Domain angeben:
DEV_SIMULATED_DOMAIN=landing1.local
Favicons
Um Platzhalter-Favicons für alle konfigurierten Domains zu generieren:
php artisan domains:generate-favicons