Teren-app/app/Services/Documents/DocumentSettings.php
Simon Pocrnjič e0303ece74 documents
2025-10-12 12:24:17 +02:00

41 lines
867 B
PHP

<?php
namespace App\Services\Documents;
use App\Models\DocumentSetting;
use Illuminate\Support\Facades\Cache;
class DocumentSettings
{
private const CACHE_KEY = 'document_settings_singleton_v1';
public function get(): DocumentSetting
{
return Cache::remember(self::CACHE_KEY, 300, fn () => DocumentSetting::instance());
}
public function refresh(): DocumentSetting
{
Cache::forget(self::CACHE_KEY);
return $this->get();
}
public function fresh(): DocumentSetting
{
return $this->refresh();
}
/**
* Convenience accessor for custom defaults.
*
* @return array<string,mixed>
*/
public function customDefaults(): array
{
$settings = $this->get();
return is_array($settings->custom_defaults ?? null) ? $settings->custom_defaults : [];
}
}