b2in/routes/domains.php
2026-01-23 17:33:10 +01:00

108 lines
3.6 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Vite;
/*
|--------------------------------------------------------------------------
| Domain-Konfiguration aus config/domains.php laden
|--------------------------------------------------------------------------
|
| Die Domains werden dynamisch aus der Konfiguration geladen.
| In .env können die Live-Domains definiert werden:
|
| DOMAIN_PORTAL=portal.beispiel.de
| DOMAIN_B2IN=b2in.de
| DOMAIN_B2A=b2a.de
| DOMAIN_STILEIGENTUM=stileigentum.de
| DOMAIN_STYLE2OWN=style2own.de
|
*/
$domainPortal = config('domains.domain_portal', 'portal.b2in.test');
$domainB2in = config('domains.domain_b2in', 'b2in.test');
$domainB2a = config('domains.domain_b2a', 'b2a.test');
$domainStileigentum = config('domains.domain_stileigentum', 'stileigentum.test');
$domainStyle2own = config('domains.domain_style2own', 'style2own.test');
// Admin-Bereich (Portal)
Route::domain($domainPortal)->group(function () {
// Auth-Routen laden
require __DIR__ . '/auth.php';
// Admin-Routes laden
require __DIR__ . '/admin.php';
// Test-Route laden
require __DIR__ . '/test.php';
// Display-API-Route (öffentlich zugänglich)
Route::get('/api/display/config', [\App\Http\Controllers\Api\DisplayConfigController::class, 'index']);
// FluxUI Asset-Routen explizit für Portal-Domain registrieren
// (Notwendig weil Route-Cache die globalen Flux-Routen nicht für alle Domains enthält)
Route::get('/flux/flux.js', [\Flux\AssetManager::class, 'fluxJs']);
Route::get('/flux/flux.min.js', [\Flux\AssetManager::class, 'fluxMinJs']);
Route::get('/flux/editor.css', [\Flux\AssetManager::class, 'editorCss']);
Route::get('/flux/editor.js', [\Flux\AssetManager::class, 'editorJs']);
Route::get('/flux/editor.min.js', [\Flux\AssetManager::class, 'editorMinJs']);
// Admin-Assets (Vite)
Vite::useBuildDirectory('build/portal');
});
// API-Routen für alle Domains (optional: auch dynamisch machen)
Route::domain(config('domains.domain_api', 'api.b2in.test'))->group(function () {
require __DIR__ . '/api.php';
});
// Web-Routes für alle Themes (werden außerhalb der Domain-Gruppen geladen, um Duplikate zu vermeiden)
// Das Theme wird automatisch basierend auf der Domain vom ThemeServiceProvider ausgewählt
require __DIR__ . '/web.php';
// Domain-spezifische Vite Build-Verzeichnisse
Route::domain($domainB2in)->group(function () {
Vite::useBuildDirectory('build/b2in');
});
Route::domain($domainB2a)->group(function () {
Vite::useBuildDirectory('build/b2a');
});
Route::domain($domainStileigentum)->group(function () {
Vite::useBuildDirectory('build/stileigentum');
});
Route::domain($domainStyle2own)->group(function () {
Vite::useBuildDirectory('build/style2own');
});
/*
// Theme 1 für landing1.test
Route::domain('landing1.test')->group(function () {
// Web-Routes laden
require __DIR__.'/web.php';
// Theme 1 Assets (Vite)
Vite::macro('themeCss', function () {
return $this->asset('resources/css/web/theme-landing1.css');
});
Vite::useBuildDirectory('build/web');
});
// Theme 2 für landing2.test
Route::domain('landing2.test')->group(function () {
// Web-Routes laden
require __DIR__.'/web.php';
// Theme 2 Assets (Vite)
Vite::macro('themeCss', function () {
return $this->asset('resources/css/web/theme-landing2.css');
});
Vite::useBuildDirectory('build/web');
});*/
// Fallback: Display-API für alle anderen Domains (z.B. localhost)
Route::get('/api/display/config', [\App\Http\Controllers\Api\DisplayConfigController::class, 'index']);