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:
parent
7661a8ccf3
commit
1c372aa03b
@ -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;
|
||||
|
||||
@ -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: []
|
||||
}
|
||||
|
||||
@ -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}`)
|
||||
}
|
||||
|
||||
@ -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
|
||||
Loading…
Reference in New Issue
Block a user