import { crmRequest } from "./client.ts"; import type { CrmCtx } from "./ctx.ts"; /** * Envío de mensajes hacia Bucéfalo CRM. * * La LECTURA de conversaciones y mensajes vive en `conversations.ts`: son dos * responsabilidades distintas y la de lectura creció con la sincronización por * id. Aquí queda solo lo que escribe. */ export interface EnvioCorreo { contactId: string; emailTo: string; subject: string; html: string; } export interface ResultadoEnvio { conversationId?: string; messageId?: string; emailMessageId?: string; msg?: string; } /** * Envía un correo por el CRM. * * **Un `200` aquí es acuse de encolado, no de entrega** — la respuesta literal * es `Email queued successfully`. No se puede afirmar que el mensaje llegó sin * mirar una bandeja real, y la interfaz no debe decir «enviado» como si fuera * un hecho confirmado. * * WhatsApp y SMS no están conectados en esta subcuenta: el correo es el único * canal ejercible hoy. */ export async function enviarCorreo(ctx: CrmCtx, e: EnvioCorreo): Promise { return crmRequest("POST", "/conversations/messages", { token: ctx.token, body: { type: "Email", contactId: e.contactId, subject: e.subject, html: e.html, emailTo: e.emailTo, }, }); }