store/app/Services/System/Setting/SystemService.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();
}
}