const HubspotService = require('../services/hubspotService'); const { get, del } = require('../utils/redisClient') const hubspotService = new HubspotService(); const receiveTranscription = async (req, res) => { try { const { crmPhone, uniqueId, transcription, recordingUrl, companyId } = req.body; if (!crmPhone || !uniqueId || !transcription || !recordingUrl) { return res.status(400).json({ error: 'Campos obrigatórios ausentes.' }); } console.log(`Recebida transcrição para crmPhone: ${crmPhone}, uniqueId: ${uniqueId}`); console.log('Transcrição:', transcription.summary); // 1. Buscar ticketId no Redis const ticketId = await get(crmPhone); if (!ticketId) { console.warn(`Nenhum ticketId encontrado no Redis para o crmPhone: ${crmPhone}. A transcrição será salva como uma nota sem associação ao ticket.`); } // 2. Buscar ou criar contato no HubSpot const contact = await hubspotService.createContactIfNotExists(companyId, crmPhone); // 3. Criar nota no HubSpot e associar ao contato e ao ticket (se existir) await hubspotService.createCallNote(contact.contactId, { transcription: `${transcription.client || ''}\n${transcription.agent || ''}`, summary: transcription.summary, recordingUrl, crmPhone, uniqueId, ticketId }); await del(crmPhone) return res.status(200).json({ message: 'Transcrição recebida e processada com sucesso!' }); } catch (error) { console.error('Erro ao receber transcrição:', error?.response?.data || error.message || error); return res.status(500).json({ error: 'Erro ao processar a transcrição.' }); } }; module.exports ={ receiveTranscription }