This commit is contained in:
lizandrogd
2026-01-21 02:34:23 -05:00
parent b1961f0116
commit edfa5f68d9
8 changed files with 220 additions and 8 deletions
+15
View File
@@ -0,0 +1,15 @@
<?php
require_once __DIR__ . '/../config/config.php';
$db = Database::getInstance();
$col = $db->fetch("SHOW COLUMNS FROM users LIKE 'bot_paused_until'");
if ($col) {
echo "Column bot_paused_until already exists\n";
exit(0);
}
try {
$db->query("ALTER TABLE users ADD COLUMN bot_paused_until DATETIME NULL AFTER on_hold");
echo "Added column bot_paused_until\n";
} catch (Exception $e) {
echo "Failed to add bot_paused_until: " . $e->getMessage() . "\n";
exit(1);
}
+15
View File
@@ -0,0 +1,15 @@
<?php
require_once __DIR__ . '/../config/config.php';
$db = Database::getInstance();
$col = $db->fetch("SHOW COLUMNS FROM users LIKE 'on_hold'");
if ($col) {
echo "Column on_hold already exists\n";
exit(0);
}
try {
$db->query("ALTER TABLE users ADD COLUMN on_hold TINYINT(1) NULL DEFAULT 0 AFTER status");
echo "Added column on_hold\n";
} catch (Exception $e) {
echo "Failed to add on_hold: " . $e->getMessage() . "\n";
exit(1);
}
+15
View File
@@ -0,0 +1,15 @@
<?php
require_once __DIR__ . '/../config/config.php';
$db = Database::getInstance();
$col = $db->fetch("SHOW COLUMNS FROM users LIKE 'welcome_sent_at'");
if ($col) {
echo "Column welcome_sent_at already exists\n";
exit(0);
}
try {
$db->query("ALTER TABLE users ADD COLUMN welcome_sent_at DATETIME NULL AFTER created_at");
echo "Added column welcome_sent_at\n";
} catch (Exception $e) {
echo "Failed to add welcome_sent_at: " . $e->getMessage() . "\n";
exit(1);
}
+49
View File
@@ -0,0 +1,49 @@
<?php
require_once __DIR__ . '/../config/config.php';
require_once __DIR__ . '/../services/BotService.php';
$db = Database::getInstance();
$bot = new BotService();
// Crear usuario de prueba
$phone = '573010000123';
$db->execute('DELETE FROM users WHERE phone_number = :p', ['p' => $phone]);
$userId = $db->insert('users', ['phone_number' => $phone, 'status' => 'active', 'created_at' => date('Y-m-d H:i:s')]);
$user = $db->fetch('SELECT * FROM users WHERE id = :id', ['id' => $userId]);
// Simular comando asesor
$bot->processMessage($user, 'asesor', 'text');
// Intentar también llamar directamente putOnHold para comprobar
$bot->putOnHold($phone);
$user2 = $db->fetch('SELECT * FROM users WHERE id = :id', ['id' => $userId]);
echo "User after putOnHold: " . json_encode($user2) . "\n";
if ($user2['on_hold']) {
echo "ON_HOLD set correctly for $phone\n";
} else {
echo "ON_HOLD NOT SET!\n";
}
// Simular finalizar conversación via menu action (invoke processMenuAction indirectly)
// Crear menu option end test: insert temporary menu and option
$menuId = $db->insert('menus', ['name'=>'test_menu_end','title'=>'Test End','is_root'=>0,'is_active'=>1,'created_at'=>date('Y-m-d H:i:s')]);
$optId = $db->insert('menu_options', ['menu_id'=>$menuId,'option_number'=>9,'text'=>'Terminar','action_type'=>'end','action_value'=>'Gracias, cerrando.','is_active'=>1,'created_at'=>date('Y-m-d H:i:s')]);
// Liberar hold y luego establecer menu para probar pause
$bot->releaseHold($phone);
$db->update('users', ['current_menu_id'=>$menuId], 'id = :id', ['id' => $userId]);
// Simular selection '9' - recargar usuario para que tenga el current_menu_id
$user = $db->fetch('SELECT * FROM users WHERE id = :id', ['id' => $userId]);
$bot->processMessage($user, '9', 'text');
$user3 = $db->fetch('SELECT * FROM users WHERE id = :id', ['id' => $userId]);
if (!empty($user3['bot_paused_until'])) {
echo "Bot paused until: {$user3['bot_paused_until']}\n";
} else {
echo "Bot pause NOT SET!\n";
}
// Cleanup
$db->execute('DELETE FROM menu_options WHERE menu_id = :mid', ['mid' => $menuId]);
$db->execute('DELETE FROM menus WHERE id = :id', ['id' => $menuId]);
$db->execute('DELETE FROM users WHERE id = :id', ['id' => $userId]);
echo "Done\n";
+35
View File
@@ -0,0 +1,35 @@
<?php
require_once __DIR__ . '/../config/config.php';
require_once __DIR__ . '/../services/BotService.php';
$db = Database::getInstance();
$bot = new BotService();
$phone = '573011111222';
$db->execute('DELETE FROM users WHERE phone_number = :p', ['p' => $phone]);
$id = $db->insert('users', ['phone_number' => $phone, 'status' => 'active', 'created_at' => date('Y-m-d H:i:s')]);
// Ensure welcome_message config exists
$message = getConfigFromDB('welcome_message', null);
if (!$message) {
$m = 'Bienvenido a nuestro servicio (mensaje por defecto)';
// Insert config if missing
try {
$db->insert('system_config', ['config_key' => 'welcome_message', 'config_value' => $m, 'created_at' => date('Y-m-d H:i:s')]);
echo "Inserted welcome_message config\n";
} catch (Exception $e) {
// ignore
}
}
$bot->sendWelcomeMessage($phone);
$user = $db->fetch('SELECT * FROM users WHERE id = :id', ['id' => $id]);
if (!empty($user['welcome_sent_at'])) {
echo "welcome_sent_at recorded: {$user['welcome_sent_at']}\n";
} else {
echo "welcome_sent_at NOT set\n";
}
// cleanup
$db->execute('DELETE FROM users WHERE id = :id', ['id' => $id]);
echo "Done\n";