From 0f643817c20071d9c8078787a2de170106817d1e Mon Sep 17 00:00:00 2001 From: Leonardo Date: Thu, 23 Apr 2026 12:15:37 -0300 Subject: [PATCH] Fix send-session-reminders comparava provider='evolution' mas DB guarda 'evolution_api' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Na migração do schema (20260421000007 / whatsapp_credits) o CHECK da coluna provider de notification_channels passou a aceitar apenas 'evolution_api' (com sufixo). O send-session-reminders continuou comparando pelo nome antigo, sempre caindo em skip 'unknown_provider'. Fix mapeia providerKind = 'evolution' quando channel.provider é 'evolution_api' ou 'evolution' — backward compat. Aplicado também no branch do twilio (sem mudança, só renomeia a variável). Validado end-to-end: lembrete 2h disparado pro paciente André Green chegou no WhatsApp do terapeuta (provider_message_id persistido em session_reminder_logs + outbound em conversation_messages). Co-Authored-By: Claude Opus 4.7 (1M context) --- supabase/functions/send-session-reminders/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/supabase/functions/send-session-reminders/index.ts b/supabase/functions/send-session-reminders/index.ts index e6338cf..840ed6a 100644 --- a/supabase/functions/send-session-reminders/index.ts +++ b/supabase/functions/send-session-reminders/index.ts @@ -314,7 +314,9 @@ async function processWindow( }) // Envia (Evolution only por enquanto) - if (channel.provider === 'evolution') { + // Aceita 'evolution' (legado) e 'evolution_api' (DB atual) + const providerKind = channel.provider === 'evolution_api' ? 'evolution' : channel.provider + if (providerKind === 'evolution') { const creds = (channel.credentials ?? {}) as Record if (!creds.api_url || !creds.api_key || !creds.instance_name) { await logSkip(supa, eventId, tenantId, type, 'creds_missing') @@ -354,7 +356,7 @@ async function processWindow( conversation_message_id: msg?.id ?? null }) stats.sent++ - } else if (channel.provider === 'twilio') { + } else if (providerKind === 'twilio') { // Busca creds twilio (colunas dedicadas + credentials JSONB com auth_token) const { data: fullChannel } = await supa .from('notification_channels')