<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * Firma bazlı ayarlar: key/value çifti (company_id + key unique).
 *
 * Kayıt yoksa ayar "varsayılan" kabul edilir — satır yalnızca firma
 * varsayılandan saptığında oluşur.
 *
 * @mixin IdeHelperCompanySetting
 */
class CompanySetting extends Model
{
    /** Bu firmanın ilanlarında fiyat düşünce kullanıcılara e-posta gitsin mi? */
    public const NOTIFICATION_SETTING = 'price_drop_notifications_enabled';

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

    public function companies()
    {
        return $this->belongsTo(Company::class);
    }

    /**
     * Firmanın ayarı açık mı? Satır yoksa $default (açık) döner.
     */
    public static function isEnabledFor(int $companyId, string $key, bool $default = true): bool
    {
        $value = static::query()
            ->where('company_id', $companyId)
            ->where('key', $key)
            ->value('value');

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

        return (bool) $value;
    }
}
