2.7 KiB
2.7 KiB
Plano: Corrigir Avisos de Contas
Visão Geral
O sistema de avisos de contas não está funcionando porque falta o cron job no Supabase que deveria chamar a edge function avisos-financeiros periodicamente. A função existe e está bem implementada, mas nunca é executada automaticamente.
O que será feito
1. Configurar Edge Function
Adicionar a função avisos-financeiros no supabase/config.toml com verify_jwt = false para permitir chamadas do cron.
2. Corrigir a Edge Function
- Corrigir a comparação de horário (a função compara "09:00" com "09:00:00")
- Melhorar a lógica para executar a cada minuto e verificar se é hora de enviar avisos
3. Criar o Cron Job
Executar SQL no Supabase para criar um cron job que execute a cada minuto:
- O job chamará a edge function via HTTP POST
- Usará as extensões
pg_cronepg_net
Detalhes Técnicos
Arquivo: supabase/config.toml
Adicionar configuração:
[functions.avisos-financeiros]
verify_jwt = false
Arquivo: supabase/functions/avisos-financeiros/index.ts
Corrigir a comparação de horário:
// ANTES (não funciona):
horaAtualBrasilia === conta.hora_aviso // "09:00" vs "09:00:00"
// DEPOIS (corrigido):
const horaAvisoNormalizada = conta.hora_aviso.substring(0, 5); // "09:00:00" -> "09:00"
horaAtualBrasilia === horaAvisoNormalizada
SQL para criar o Cron Job
Este SQL precisa ser executado no Cloud View > Run SQL:
-- Habilitar extensões necessárias
CREATE EXTENSION IF NOT EXISTS pg_cron;
CREATE EXTENSION IF NOT EXISTS pg_net;
-- Criar cron job para executar a cada minuto
SELECT cron.schedule(
'avisos-financeiros-minuto',
'* * * * *',
$$
SELECT net.http_post(
url := 'https://tnurlgbvfsxwqgwxamni.supabase.co/functions/v1/avisos-financeiros',
headers := '{"Content-Type": "application/json", "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InRudXJsZ2J2ZnN4d3Fnd3hhbW5pIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDQ5MTQ1OTksImV4cCI6MjA2MDQ5MDU5OX0.9__EQiZDJ954SmeeJIDTQjOYDjiiRcppai1e8UpuOl4"}'::jsonb,
body := '{}'::jsonb
) AS request_id;
$$
);
Sequência de Implementação
- Atualizar
supabase/config.toml - Corrigir
supabase/functions/avisos-financeiros/index.ts - Executar SQL para criar o cron job (você precisará fazer isso manualmente no painel do Supabase)
Resultado Esperado
- A edge function será chamada a cada minuto
- A função verificará se há contas com avisos a enviar no horário configurado
- Os avisos serão enviados via webhook para o n8n
- O histórico de avisos enviados será registrado na tabela
avisos_enviados