Your IP : 216.73.216.79


Current Path : /var/www/html/dynaweb-cms-v1/app/Models/Backend/
Upload File :
Current File : /var/www/html/dynaweb-cms-v1/app/Models/Backend/ThemeSetting.php

<?php

namespace App\Models\Backend;

use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Table;
use Illuminate\Database\Eloquent\Model;

#[Table('theme_settings', key: 'setting_id')]
#[Fillable([
    'setting_rule_id',
    'setting_param_name',
    'setting_param_type',
    'setting_param_value',
    'setting_param_default',
])]
class ThemeSetting extends Model
{
    public $timestamps = false;

    public static function settingArray(): array
    {
        $result = [];
        $settings = self::all();
        foreach ($settings as $s) {
            if ($s->setting_param_type === 'unit') {
                $json = json_decode($s->setting_param_value);
                $def = json_decode($s->setting_param_default);
                $result[$s->setting_rule_id][$s->setting_param_name] = [
                    'type' => 'unit',
                    'value' => $json->value ?? $def->value,
                    'unit'  => $json->unit  ?? $def->unit,
                ];
            } else {
                $val = $s->setting_param_value ?: $s->setting_param_default;
                $result[$s->setting_rule_id][$s->setting_param_name] = $val;
            }
        }
        return $result;
    }

    public function rule()
    {
        return $this->belongsTo(ThemeRule::class, 'setting_rule_id', 'rule_id');
    }
}