budget-view-finance/.lovable/plan.md
gpt-engineer-app[bot] 647ea938c3 Updated plan file
Edited UI in Lovable
2026-02-04 14:12:21 +00:00

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_cron e pg_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

  1. Atualizar supabase/config.toml
  2. Corrigir supabase/functions/avisos-financeiros/index.ts
  3. 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