b2in/routes/domains.php
2026-02-20 17:57:50 +01:00

121 lines
4.3 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 () {
// Livewire Update-Route explizit für Portal-Domain registrieren
// (Notwendig weil Route-Cache/Subdomain-Routing die globalen Livewire-Routen nicht für alle Domains enthält)
Route::post(
\Livewire\Mechanisms\HandleRequests\EndpointResolver::updatePath(),
[\Livewire\Mechanisms\HandleRequests\HandleRequests::class, 'handleUpdate']
)->middleware('web')->name('portal.livewire.update');
// Livewire File-Upload-Route explizit für Portal-Domain registrieren
Route::post(
\Livewire\Mechanisms\HandleRequests\EndpointResolver::uploadPath(),
[\Livewire\Features\SupportFileUploads\FileUploadController::class, 'handle']
)->middleware(['web', 'throttle:60,1'])->name('portal.livewire.upload-file');
// 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']);