From 647ea938c3fb78391cc978a2b15a0472147978bb Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 14:12:21 +0000 Subject: [PATCH] Updated plan file Edited UI in Lovable --- .lovable/plan.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .lovable/plan.md diff --git a/.lovable/plan.md b/.lovable/plan.md new file mode 100644 index 0000000..e4c0236 --- /dev/null +++ b/.lovable/plan.md @@ -0,0 +1,80 @@ + +# 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: +```toml +[functions.avisos-financeiros] +verify_jwt = false +``` + +### Arquivo: `supabase/functions/avisos-financeiros/index.ts` +Corrigir a comparação de horário: +```typescript +// 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: +```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`