Files
ABSDEV/Modules/Stylist/Services/TenantThemeResolver.php
T
2026-07-23 17:23:57 +01:00

43 lines
1.1 KiB
PHP

<?php
namespace Modules\Stylist\Services;
use Illuminate\Support\Facades\Auth;
final class TenantThemeResolver
{
public function resolve(): string
{
$column = config('stylist.tenant_theme_column', 'theme_key');
$user = Auth::user();
$company = $user?->company ?? null;
if ($company && filled($company->{$column} ?? null)) {
return (string) $company->{$column};
}
if (function_exists('tenant')) {
$tenant = tenant();
if ($tenant && filled($tenant->{$column} ?? null)) {
return (string) $tenant->{$column};
}
}
return config('stylist.default_theme', 'default');
}
public function variables(): array
{
$variables = config('stylist.fallback_variables', []);
$company = Auth::user()?->company ?? null;
foreach (config('stylist.tenant_brand_columns', []) as $column => $variable) {
if ($company && filled($company->{$column} ?? null)) {
$variables[$variable] = (string) $company->{$column};
}
}
return $variables;
}
}