'datetime', 'updated_at' => 'datetime', ]; /** * Obtener configuración por clave * * @param string $clave La clave de configuración * @param mixed $default Valor por defecto si no existe * @return mixed */ public static function get(string $clave, $default = null) { $config = self::where('clave', $clave)->first(); if (! $config) { return $default; } return $config->valor; } /** * Obtener todas las configuraciones como array asociativo */ public static function allAsArray(): array { return self::pluck('valor', 'clave')->toArray(); } /** * Establecer una configuración * * @param string $clave La clave de configuración * @param mixed $valor El valor a guardar */ public static function set(string $clave, $valor): self { $config = self::where('clave', $clave)->firstOrNew(['clave' => $clave]); $config->valor = $valor; $config->save(); return $config; } /** * Eliminar una configuración * * @param string $clave La clave de configuración */ public static function remove(string $clave): bool { return self::where('clave', $clave)->delete() > 0; } }