49 lines
1.7 KiB
PHP
49 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Services\System\Setting;
|
|
|
|
use App\Settings\SystemSettings;
|
|
use Illuminate\Http\UploadedFile;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class SystemService
|
|
{
|
|
public function systemData(): array
|
|
{
|
|
$settings = app(SystemSettings::class);
|
|
|
|
return [
|
|
'app_name' => $settings->app_name,
|
|
'about_app' => $settings->about_app,
|
|
'email' => $settings->email,
|
|
'phone' => $settings->phone,
|
|
'logo' => $settings->logo,
|
|
'logo_url' => $settings->logo ? Storage::disk('public')->url($settings->logo) : null,
|
|
'login_cover' => $settings->login_cover,
|
|
'login_cover_url' => $settings->login_cover ? Storage::disk('public')->url($settings->login_cover) : null,
|
|
];
|
|
}
|
|
|
|
public function updateSystem(array $validated): void
|
|
{
|
|
$settings = app(SystemSettings::class);
|
|
|
|
$settings->app_name = $validated['app_name'];
|
|
$settings->about_app = $validated['about_app'] ?? null;
|
|
$settings->email = $validated['email'] ?? null;
|
|
$settings->phone = $validated['phone'] ?? null;
|
|
|
|
if (isset($validated['logo']) && $validated['logo'] instanceof UploadedFile) {
|
|
Storage::disk('public')->delete($settings->logo);
|
|
$settings->logo = $validated['logo']->store('settings/system', 'public');
|
|
}
|
|
|
|
if (isset($validated['login_cover']) && $validated['login_cover'] instanceof UploadedFile) {
|
|
Storage::disk('public')->delete($settings->login_cover);
|
|
$settings->login_cover = $validated['login_cover']->store('settings/system', 'public');
|
|
}
|
|
|
|
$settings->save();
|
|
}
|
|
}
|