'Hola! Bienvenido. Escribe tu consulta.', 'mensaje_transferencia' => 'Un agente se comunicara contigo en breve. Por favor espera.', 'validacion_accion_auto' => 'solo_notificar', 'validacion_monto_tolerancia' => '0', ]; foreach ($keys as $key) { $this->{$key} = ChatConfig::get($key, $defaults[$key] ?? ''); } } public function guardar(): void { $this->validate([ 'mensaje_bienvenida' => 'required|string|max:500', 'mensaje_transferencia' => 'required|string|max:500', 'validacion_monto_tolerancia' => 'nullable|integer|min:0', 'recarga_banco_nombre' => 'nullable|max:60', 'recarga_banco_llave' => 'nullable|max:60', 'recarga_banco_titular' => 'nullable|max:100', ]); $keys = [ 'telegram_token', 'mensaje_bienvenida', 'mensaje_transferencia', 'gemini_api_key', 'gemini_habilitado', 'gemini_prompt_extra', 'validacion_foto_habilitada', 'validacion_accion_auto', 'validacion_monto_tolerancia', 'recarga_banco_nombre', 'recarga_banco_llave', 'recarga_banco_titular', ]; foreach ($keys as $key) { ChatConfig::set($key, $this->{$key}); } $this->alert('success', 'Configuracion guardada correctamente.'); } public function registrarWebhook(): void { $token = trim($this->telegram_token); if (! $token) { $this->webhookResult = 'El token de Telegram esta vacio.'; return; } ChatConfig::set('telegram_token', $token); $webhookUrl = url('/chat/webhook/telegram'); $apiUrl = "https://api.telegram.org/bot{$token}/setWebhook"; $context = stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/x-www-form-urlencoded\r\n", 'content' => http_build_query(['url' => $webhookUrl]), 'timeout' => 10, ], ]); $result = @file_get_contents($apiUrl, false, $context); if ($result === false) { $this->webhookResult = 'Error de conexion con la API de Telegram.'; return; } $data = json_decode($result, true); $this->webhookResult = ($data['ok'] ?? false) ? 'Webhook registrado: ' . ($data['description'] ?? 'OK') : 'Error: ' . ($data['description'] ?? 'respuesta desconocida'); } public function render() { return view('livewire.chat.show-configuracion-chat'); } }