<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * Sistem geneli (global) ayarlar: key/value çifti.
 *
 * @mixin IdeHelperSetting
 */
class Setting extends Model
{
    /** Kaydedilen ilanlarda fiyat düşünce kullanıcılara e-posta gitsin mi? */
    public const GLOBAL_NOTIFICATİON_SETTING = 'price_drop_notifications_enabled';

    protected $fillable = [
        'key',
        'value'
    ];

    /**
     * Ayarın açık olup olmadığı. Kayıt yoksa $default döner; "0" ve "" kapalı,
     * diğer her şey açık sayılır (value text kolonu olduğu için).
     */
    public static function isEnabled(string $key, bool $default = true): bool
    {
        $value = static::query()->where('key', $key)->value('value');

        if ($value === null) {
            return $default;
        }

        return (bool) $value;
    }
}
