Run SQL to add user email and WhatsApp

Adds email and WhatsApp columns to the contas_recorrentes table and updates existing records.
This commit is contained in:
gpt-engineer-app[bot] 2025-06-23 21:58:48 +00:00
parent 7661a8ccf3
commit 1c372aa03b
4 changed files with 57 additions and 3 deletions

View File

@ -10,6 +10,7 @@ import { useForm } from 'react-hook-form';
import { supabase } from '@/integrations/supabase/client';
import { toast } from 'sonner';
import { useAuthStore } from '@/stores/authStore';
import { useQuery } from '@tanstack/react-query';
interface ContaRecorrenteFormProps {
onClose: () => void;
@ -34,19 +35,44 @@ const ContaRecorrenteForm = ({ onClose, onSuccess }: ContaRecorrenteFormProps) =
}
});
// Buscar dados do usuário para pegar email e whatsapp
const { data: userData } = useQuery({
queryKey: ['user-data', user?.id],
queryFn: async () => {
if (!user?.id) return null;
const { data, error } = await supabase
.from('usuarios')
.select('email, whatsapp')
.eq('id', user.id)
.single();
if (error) throw error;
return data;
},
enabled: !!user?.id
});
const onSubmit = async (data: FormData) => {
if (!user?.id) {
toast.error('Usuário não encontrado. Faça login novamente.');
return;
}
if (!userData) {
toast.error('Dados do usuário não encontrados.');
return;
}
try {
const { error } = await supabase
.from('contas_recorrentes')
.insert([{
...data,
user_id: user.id,
valor: data.valor || null
valor: data.valor || null,
email_usuario: userData.email,
whatsapp_usuario: userData.whatsapp
}]);
if (error) throw error;

View File

@ -207,12 +207,14 @@ export type Database = {
descricao: string | null
dia_vencimento: number
dias_antecedencia: number
email_usuario: string | null
hora_aviso: string
id: string
nome_conta: string
updated_at: string
user_id: string
valor: number | null
whatsapp_usuario: string | null
}
Insert: {
ativo?: boolean
@ -220,12 +222,14 @@ export type Database = {
descricao?: string | null
dia_vencimento: number
dias_antecedencia?: number
email_usuario?: string | null
hora_aviso?: string
id?: string
nome_conta: string
updated_at?: string
user_id: string
valor?: number | null
whatsapp_usuario?: string | null
}
Update: {
ativo?: boolean
@ -233,12 +237,14 @@ export type Database = {
descricao?: string | null
dia_vencimento?: number
dias_antecedencia?: number
email_usuario?: string | null
hora_aviso?: string
id?: string
nome_conta?: string
updated_at?: string
user_id?: string
valor?: number | null
whatsapp_usuario?: string | null
}
Relationships: []
}

View File

@ -17,11 +17,15 @@ interface ContaRecorrente {
hora_aviso: string;
dias_antecedencia: number;
ativo: boolean;
email_usuario: string | null;
whatsapp_usuario: string | null;
}
interface AvisoData {
conta_id: string;
user_id: string;
email_usuario: string | null;
whatsapp_usuario: string | null;
nome_conta: string;
descricao: string | null;
valor: number | null;
@ -47,7 +51,7 @@ serve(async (req) => {
console.log(`Executando verificação de avisos às ${horaAtual}`)
// Buscar todas as contas ativas
// Buscar todas as contas ativas incluindo email e whatsapp do usuário
const { data: contas, error: contasError } = await supabase
.from('contas_recorrentes')
.select('*')
@ -104,6 +108,8 @@ serve(async (req) => {
const avisoData: AvisoData = {
conta_id: conta.id,
user_id: conta.user_id,
email_usuario: conta.email_usuario,
whatsapp_usuario: conta.whatsapp_usuario,
nome_conta: conta.nome_conta,
descricao: conta.descricao,
valor: conta.valor,
@ -139,7 +145,7 @@ serve(async (req) => {
if (webhookResponse.ok) {
avisosEnviados++
console.log(`✅ Aviso enviado com sucesso para: ${conta.nome_conta}`)
console.log(`✅ Aviso enviado com sucesso para: ${conta.nome_conta} (${conta.whatsapp_usuario})`)
} else {
console.error(`❌ Erro ao enviar webhook para: ${conta.nome_conta}`)
}

View File

@ -0,0 +1,16 @@
-- Adicionar colunas para email e whatsapp do usuário na tabela contas_recorrentes
ALTER TABLE public.contas_recorrentes
ADD COLUMN email_usuario TEXT,
ADD COLUMN whatsapp_usuario TEXT;
-- Atualizar os registros existentes com os dados dos usuários
UPDATE public.contas_recorrentes cr
SET
email_usuario = u.email,
whatsapp_usuario = u.whatsapp
FROM public.usuarios u
WHERE cr.user_id::text = u.id::text;
-- Adicionar políticas RLS para as novas colunas (as políticas existentes já cobrem essas colunas)
-- As políticas já existentes continuarão funcionando pois filtram por user_id