<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache;
class Setting extends Model
{
protected $fillable = ['key', 'value', 'type', 'label', 'group'];
public static function get(string $key, $default = null)
{
return Cache::remember("setting_{$key}", 3600, function () use ($key, $default) {
$setting = static::where('key', $key)->first();
return $setting ? $setting->value : $default;
});
}
public static function set(string $key, $value): void
{
static::updateOrCreate(['key' => $key], ['value' => $value]);
Cache::forget("setting_{$key}");
}
}