funcional

This commit is contained in:
lizandrogd
2026-01-12 16:13:41 -05:00
parent 50fc690b1b
commit 4d506f74e0
8 changed files with 359 additions and 19 deletions
+40 -19
View File
@@ -106,22 +106,38 @@ try {
// Verificar si es mensaje de texto y si el usuario respondió en las últimas 24h
if ($type === 'text') {
$stmt = $db->query(
"SELECT MAX(created_at) as last_message FROM conversations
WHERE phone_number = ? AND direction = 'incoming'
AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)",
[$recipient]
);
$lastMessage = $stmt->fetch();
if (!$lastMessage || !$lastMessage['last_message']) {
echo json_encode([
'success' => false,
'error' => 'No se puede enviar mensaje de texto libre. El usuario no ha respondido en las últimas 24 horas.',
'suggestion' => 'Usa una plantilla pre-aprobada o espera a que el usuario te escriba.',
'error_code' => 'OUTSIDE_24H_WINDOW'
]);
exit;
// Permitir número específico que sí ha respondido
if ($recipient === '573168950803') {
// Este número específico tiene permitido envío de texto libre
error_log("NÚMERO AUTORIZADO: 573168950803 - Permitiendo envío de texto libre");
} else {
// Primero obtener el user_id del teléfono
$userStmt = $db->query(
"SELECT id FROM users WHERE phone_number = ? LIMIT 1",
[$recipient]
);
$user = $userStmt->fetch();
if ($user) {
$stmt = $db->query(
"SELECT MAX(created_at) as last_message FROM conversations
WHERE user_id = ? AND direction = 'incoming'
AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)",
[$user['id']]
);
$lastMessage = $stmt->fetch();
if (!$lastMessage || !$lastMessage['last_message']) {
echo json_encode([
'success' => false,
'error' => 'No se puede enviar mensaje de texto libre. El usuario no ha respondido en las últimas 24 horas.',
'suggestion' => 'Usa una plantilla pre-aprobada o espera a que el usuario te escriba.',
'error_code' => 'OUTSIDE_24H_WINDOW'
]);
exit;
}
}
// Si no existe el usuario, permitir envío (se creará automáticamente)
}
}
@@ -274,9 +290,9 @@ try {
// Crear nuevo usuario
$stmt = $db->query(
"INSERT INTO users (phone_number, name, created_at) VALUES (?, ?, NOW())",
[$recipient, $recipient, date('Y-m-d H:i:s')]
[$recipient, $recipient]
);
$userId = $db->lastInsertId();
$userId = $stmt ? $db->lastInsertId() : null;
}
if ($userId) {
@@ -296,9 +312,14 @@ try {
"INSERT INTO conversations (user_id, content, direction, message_type, status, message_id, created_at) VALUES (?, ?, 'outgoing', ?, 'sent', ?, NOW())",
[$userId, $messageContent, $messageType, $response['messages'][0]['id'] ?? null]
);
error_log("Mensaje guardado en BD - User ID: $userId, Content: $messageContent");
} else {
error_log("Error: No se pudo obtener o crear user_id para recipient: $recipient");
}
} catch (Exception $e) {
error_log("Error guardando mensaje en base de datos: " . $e->getMessage());
error_log("Error detallado guardando mensaje en base de datos: " . $e->getMessage());
error_log("Stack trace: " . $e->getTraceAsString());
}
echo json_encode([