context(); $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}; } } $settingKey = $context === 'frontend' ? 'frontend_theme' : 'backend_theme'; $default = $context === 'frontend' ? config('stylist.default_frontend_theme', 'sonardesk') : config('stylist.default_backend_theme', config('stylist.default_theme', 'sonardesk-admin')); return (string) $this->settings->get($settingKey, $default, 'site'); } public function context(): string { if (app()->runningInConsole()) { return 'backend'; } $request = request(); return $request->is('admin', 'admin/*', 'stylist', 'stylist/*') || $request->routeIs('admin.*', 'stylist.*') ? 'backend' : 'frontend'; } 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; } }