This commit is contained in:
Lizandro Guarnizo
2026-01-27 14:51:41 -05:00
parent c1f3524466
commit 1f224044f7
21 changed files with 2997 additions and 47 deletions
+33 -12
View File
@@ -67,20 +67,22 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
// Función auxiliar para enviar con media_id
function sendMediaByIdToWhatsApp($whatsapp, $recipient, $mediaId, $mediaType, $caption, $filename) {
return $whatsapp->sendMediaById($recipient, $mediaId, $mediaType, $caption, $filename);
// Pasar skipAutoSave=true para evitar guardado duplicado (lo guardamos manualmente después)
return $whatsapp->sendMediaById($recipient, $mediaId, $mediaType, $caption, $filename, true);
}
// Función auxiliar para enviar con link
function sendMediaByLinkToWhatsApp($whatsapp, $recipient, $mediaUrl, $mediaType, $caption, $filename) {
// Pasar skipAutoSave=true para evitar guardado duplicado (lo guardamos manualmente después)
switch ($mediaType) {
case 'image':
return $whatsapp->sendImageMessage($recipient, $mediaUrl, $caption);
return $whatsapp->sendImageMessage($recipient, $mediaUrl, $caption, true);
case 'video':
return $whatsapp->sendVideoMessage($recipient, $mediaUrl, $caption);
return $whatsapp->sendVideoMessage($recipient, $mediaUrl, $caption, true);
case 'audio':
return $whatsapp->sendAudioMessage($recipient, $mediaUrl);
return $whatsapp->sendAudioMessage($recipient, $mediaUrl, true);
case 'document':
return $whatsapp->sendDocumentMessage($recipient, $mediaUrl, $filename, $caption);
return $whatsapp->sendDocumentMessage($recipient, $mediaUrl, $filename, $caption, true);
default:
throw new Exception('Tipo de media no soportado: ' . $mediaType);
}
@@ -333,26 +335,45 @@ try {
);
if ($user) {
// Determinar content: prioridad filename > caption > descripción por defecto
$content = '';
if (!empty($filename)) {
$content = $filename;
} elseif (!empty($caption)) {
$content = $caption;
} else {
// Descripción por defecto según tipo
$defaultLabels = [
'image' => '[Imagen]',
'video' => '[Video]',
'audio' => '[Audio]',
'document' => '[Documento]'
];
$content = $defaultLabels[$mediaType] ?? '[Media]';
}
// Datos base para insertar
// content: solo caption o nombre de archivo
// content: nombre de archivo o caption (nunca JSON)
// media_url: ID de WhatsApp si está disponible, sino la URL original
$conversationData = [
'user_id' => $user['id'],
'message_id' => $sentMessageId,
'direction' => 'outgoing',
'message_type' => $mediaType,
'content' => $caption ?: ($filename ?: ''),
'content' => $content,
'media_url' => isset($uploaded_media_id) ? $uploaded_media_id : $mediaUrl,
'whatsapp_media_id' => $uploaded_media_id ?? null,
'status' => 'sent',
'created_at' => date('Y-m-d H:i:s')
];
// Intentar añadir filename solo si la columna existe
// TODO: Ejecutar migración add_filename_to_conversations.sql
// ALTER TABLE conversations ADD COLUMN filename VARCHAR(255) NULL AFTER media_url;
error_log("send_media_message.php - Guardando en BD: " . json_encode($conversationData));
// Log detallado para debugging
error_log("send_media_message.php - Guardando mensaje multimedia:");
error_log(" - content: " . $content);
error_log(" - media_url: " . ($conversationData['media_url'] ?? 'null'));
error_log(" - whatsapp_media_id: " . ($conversationData['whatsapp_media_id'] ?? 'null'));
error_log(" - media_type: " . $mediaType);
smm_log("Saving to DB - content: {$content}, media_url: " . ($conversationData['media_url'] ?? 'null'));
try {
$db->insert('conversations', $conversationData);