fetch("SELECT * FROM users WHERE id = ?", [$userId]); if (!$user) { throw new Exception('Usuario no encontrado'); } // Preparar datos según el tipo de mensaje $templateId = null; $templateName = null; $templateLanguage = 'es'; $templateParameters = null; $messageContent = null; if ($messageType === 'template') { $templateId = isset($input['template_id']) ? intval($input['template_id']) : null; $templateName = $input['template_name'] ?? null; $templateLanguage = $input['template_language'] ?? 'es'; $templateParameters = $input['template_parameters'] ?? null; error_log('🔍 template_parameters recibido: ' . json_encode($templateParameters)); error_log('🔍 Es array? ' . (is_array($templateParameters) ? 'Sí' : 'No')); if (!$templateId && !$templateName) { throw new Exception('Se requiere ID o nombre de plantilla'); } // Si se proporcionaron parámetros, convertir a JSON if ($templateParameters && is_array($templateParameters)) { $templateParameters = json_encode($templateParameters, JSON_UNESCAPED_UNICODE); error_log('✅ Convertido a JSON: ' . $templateParameters); } else { error_log('⚠️ No se convirtió - es null o no es array'); } } else if ($messageType === 'text') { $messageContent = $input['message_content'] ?? null; if (empty($messageContent)) { throw new Exception('Contenido del mensaje requerido'); } } else { throw new Exception('Tipo de mensaje no soportado'); } // Obtener ID del admin actual $createdBy = $_SESSION['admin_user']['id'] ?? $_SESSION['user_id'] ?? null; // Insertar mensaje programado $db->execute( "INSERT INTO scheduled_messages ( user_id, template_id, template_name, template_language, template_parameters, message_type, message_content, scheduled_date, scheduled_time, created_by, status ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending')", [ $userId, $templateId, $templateName, $templateLanguage, $templateParameters, $messageType, $messageContent, $scheduledDate, $scheduledTime, $createdBy ] ); $scheduledId = $db->lastInsertId(); error_log('✅ Mensaje programado guardado con ID: ' . $scheduledId); // Log writeLog('INFO', "Mensaje programado creado: ID={$scheduledId}, Usuario={$userId}, Fecha={$scheduledDate} {$scheduledTime}"); echo json_encode([ 'success' => true, 'message' => 'Recordatorio programado exitosamente', 'data' => [ 'id' => $scheduledId, 'scheduled_date' => $scheduledDate, 'scheduled_time' => $scheduledTime, 'user_name' => $user['name'], 'phone_number' => $user['phone_number'] ] ]); } catch (Exception $e) { error_log("Error in schedule_message.php: " . $e->getMessage()); http_response_code(500); echo json_encode([ 'success' => false, 'error' => $e->getMessage() ]); }