<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class ConfiguracaoSistema extends Model
{
    protected $table = 'configuracoes_sistema';

    protected $fillable = [
        'chave',
        'grupo',
        'tipo',
        'valor',
        'descricao',
    ];

    public static function valor(string $chave, mixed $padrao = null): mixed
    {
        $configuracao = static::where('chave', $chave)->first();

        if (! $configuracao) {
            return $padrao;
        }

        if ($configuracao->valor === null || $configuracao->valor === '') {
            return $padrao;
        }

        return match ($configuracao->tipo) {
            'booleano' => filter_var($configuracao->valor, FILTER_VALIDATE_BOOLEAN),
            'inteiro' => (int) $configuracao->valor,
            default => $configuracao->valor,
        };
    }
}
