diff --git a/src/components/whatsapp/CreateInstanceForm.tsx b/src/components/whatsapp/CreateInstanceForm.tsx index 5b8acf1..4393065 100644 --- a/src/components/whatsapp/CreateInstanceForm.tsx +++ b/src/components/whatsapp/CreateInstanceForm.tsx @@ -22,13 +22,14 @@ const CreateInstanceForm = ({ }: CreateInstanceFormProps) => { const { toast } = useToast(); const [loading, setLoading] = useState(false); + const [ddd, setDdd] = useState(''); const [phoneNumber, setPhoneNumber] = useState(''); const [hasExistingInstance, setHasExistingInstance] = useState(false); const [checkingExistingInstance, setCheckingExistingInstance] = useState(true); const currentUserId = localStorage.getItem('userId') || ''; - const userEmail = localStorage.getItem('userEmail') || ''; + const userEmail = (localStorage.getItem('userEmail') || '').toLowerCase(); // Padronização obrigatória - // Nome da instância será sempre o email do usuário + // Nome da instância será sempre o email do usuário (já padronizado) const instanceName = userEmail; // Verificar se o usuário já tem uma instância @@ -72,15 +73,29 @@ const CreateInstanceForm = ({ return; } - if (!phoneNumber.trim() || !/^[0-9]{10,15}$/.test(phoneNumber)) { + // Validar DDD (2 dígitos) + if (!ddd.trim() || !/^[0-9]{2}$/.test(ddd)) { toast({ title: "Erro", - description: "Insira um número válido com DDD e país (ex: 559999999999)", + description: "Insira um DDD válido com 2 dígitos (ex: 11, 21, 31)", variant: "destructive", }); return; } + // Validar número (8 ou 9 dígitos) + if (!phoneNumber.trim() || !/^[0-9]{8,9}$/.test(phoneNumber)) { + toast({ + title: "Erro", + description: "Insira um número válido com 8 ou 9 dígitos (ex: 987654321)", + variant: "destructive", + }); + return; + } + + // Montar número completo: +55 + DDD + número + const fullPhoneNumber = `55${ddd}${phoneNumber}`; + // Ensure user is logged in if (!currentUserId) { toast({ @@ -104,16 +119,16 @@ const CreateInstanceForm = ({ setLoading(true); try { - console.log(`🚀 Iniciando criação de instância com nome ${instanceName} e número ${phoneNumber}`); + console.log(`🚀 Iniciando criação de instância com nome ${instanceName} e número ${fullPhoneNumber}`); // 1. Criar instância na API console.log('📡 Passo 1: Criando instância na API...'); - const data = await createWhatsAppInstance(instanceName, phoneNumber); + const data = await createWhatsAppInstance(instanceName, fullPhoneNumber); console.log('✅ Resposta da API de criação de instância:', data); // 2. Atualizar o banco de dados com status "conectado" console.log('💾 Passo 2: Atualizando banco de dados...'); - await updateUserWhatsAppInstance(userEmail, instanceName, 'conectado'); + await updateUserWhatsAppInstance(userEmail, instanceName, 'conectado', fullPhoneNumber); console.log('✅ Instância registrada no banco de dados com status "conectado"'); // 3. Ativar o workflow do usuário no n8n @@ -135,7 +150,7 @@ const CreateInstanceForm = ({ const newInstance: WhatsAppInstance = { instanceName, instanceId: instanceName, - phoneNumber, + phoneNumber: fullPhoneNumber, userId: currentUserId, status: data.instance?.status || 'created', qrcode: data.qrcode?.base64 || null, @@ -156,6 +171,7 @@ const CreateInstanceForm = ({ }); // Reset form fields + setDdd(''); setPhoneNumber(''); } catch (error) { @@ -163,7 +179,7 @@ const CreateInstanceForm = ({ // Se houve erro na API, tentar reverter no banco de dados try { - await updateUserWhatsAppInstance(userEmail, '', 'desconectado'); + await updateUserWhatsAppInstance(userEmail, '', 'desconectado', ''); console.log('🔄 Instância removida do banco devido ao erro na API'); } catch (dbError) { console.error('❌ Erro ao reverter instância no banco:', dbError); @@ -252,21 +268,55 @@ const CreateInstanceForm = ({
Digite o número com DDD e código do país
+ + + {/* Código do país fixo */} ++ Digite seu DDD e o número do seu celular +