<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Configuracion extends Model
{
    protected $table = 'configuraciones';

    protected $fillable = [
        'clave',
        'valor',
        'descripcion',
    ];

    /**
     * Obtener un valor de configuración por su clave.
     *
     * @param string $clave
     * @param mixed $default
     * @return mixed
     */
    public static function get($clave, $default = null)
    {
        $config = self::where('clave', $clave)->first();
        return $config ? $config->valor : $default;
    }

    /**
     * Establecer o actualizar un valor de configuración.
     *
     * @param string $clave
     * @param mixed $valor
     * @param string|null $descripcion
     * @return self
     */
    public static function set($clave, $valor, $descripcion = null)
    {
        return self::updateOrCreate(
            ['clave' => $clave],
            ['valor' => $valor, 'descripcion' => $descripcion]
        );
    }
}
