nhance/app/Controllers/Chatbot/MainMenuConversation.php
2025-02-07 14:59:39 +05:30

79 lines
3.0 KiB
PHP

<?php
namespace App\Controllers\Chatbot;
use App\Helpers\ChatbotHelper;
use BotMan\BotMan\Messages\Conversations\Conversation;
use BotMan\BotMan\Messages\Outgoing\Question;
use BotMan\BotMan\Messages\Outgoing\Actions\Button;
class MainMenuConversation extends Conversation
{
public function run()
{
$this->bot->types(); // Typing indicator for the first message
sleep(0.5); // Delay
$this->showMainMenu();
}
protected function showMainMenu()
{
$this->bot->userStorage()->save([
'path' => []
]);
$question = Question::create("Please choose")
->addButtons([
Button::create("📄 Ecard Download")->value("ecard_download"),
Button::create("🏥 Network Hospital")->value("network_hospital"),
Button::create("💰 Reimbursement Claim Process")->value("reimbursement_claim"),
Button::create("📑 Reimbursement Claim Status")->value("reimbursement_status"),
Button::create("🆕 New Policy")->value("new_policy"),
Button::create("🔄 Renew Policy")->value("renew_policy"),
]);
$this->bot->ask($question, function ($answer) {
$path = $this->bot->userStorage()->get('path');
array_push($path,
$answer->getValue()
);
$this->bot->userStorage()->save([
'path' => $path
]);log_message("error","Path : ".json_encode($path));
switch ($answer->getValue()) {
case "ecard_download":
// $message = ChatbotHelper::get_payload_data();
// $this->say($message);
// $this->say("📄 Ecard Download Menu:");
$this->bot->startConversation(new EcardDownloadConversation());
break;
case "network_hospital":
$this->say("🏥 Network Hospital Menu:");log_message('error','Network Hospital clicked');
$this->bot->startConversation(new NetworkHospitalConversation());
break;
case "reimbursement_claim":
// $this->say("Reimbursement Claim Process selected. (Dummy Response)");
$this->bot->startConversation(new ReimbursementClaimProcessConversation());
break;
case "reimbursement_status":
$this->bot->startConversation(new ReimbursementClaimStatusConversation());
break;
case "new_policy":
$this->bot->startConversation(new policyConversation());
break;
case "renew_policy":
$this->bot->startConversation(new policyConversation());
break;
default:
$this->say("Invalid selection. Please choose an option.");
$this->bot->startConversation(new MainMenuConversation());
break;
}
});
}
}