add all controllers logic

This commit is contained in:
root
2026-03-11 17:53:15 -04:00
parent 3e6c577085
commit 2ef71cc92b
421 changed files with 12009 additions and 5211 deletions
+48
View File
@@ -0,0 +1,48 @@
<?php
namespace App\Services\Settings;
use App\Models\Configuration;
use App\Models\Setting;
use Illuminate\Support\Facades\DB;
class SettingsService
{
public function get(): array
{
$settings = Setting::singleton();
return [
'site_name' => $settings->name,
'timezone' => $settings->timezone,
'administrator_email' => Configuration::getConfig('administrator_email') ?? '',
];
}
public function update(array $payload, int $userId): array
{
return DB::transaction(function () use ($payload, $userId) {
$settings = Setting::singleton();
$updates = [];
if (array_key_exists('site_name', $payload)) {
$updates['name'] = $payload['site_name'];
}
if (array_key_exists('timezone', $payload)) {
$updates['timezone'] = $payload['timezone'];
}
if (!empty($updates)) {
$updates['updated_by'] = $userId;
$settings->fill($updates);
$settings->save();
}
if (array_key_exists('administrator_email', $payload)) {
Configuration::setConfigValueByKey('administrator_email', (string) $payload['administrator_email']);
}
return $this->get();
});
}
}