/** * Script para testar login do médico Fernando * Verifica autenticação e se o usuário é identificado como médico */ import axios from "axios"; const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co"; const SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ"; const FERNANDO_EMAIL = "fernando.pirichowski@souunit.com.br"; const FERNANDO_PASSWORD = "fernando"; async function main() { try { console.log("🔐 TESTANDO LOGIN DO MÉDICO FERNANDO\n"); console.log("Credenciais:"); console.log(` Email: ${FERNANDO_EMAIL}`); console.log(` Senha: ${FERNANDO_PASSWORD}\n`); // 1. Fazer login console.log("1️⃣ Fazendo login...\n"); const loginResponse = await axios.post( `${SUPABASE_URL}/auth/v1/token?grant_type=password`, { email: FERNANDO_EMAIL, password: FERNANDO_PASSWORD, }, { headers: { apikey: SUPABASE_ANON_KEY, "Content-Type": "application/json", }, } ); const token = loginResponse.data.access_token; const userId = loginResponse.data.user.id; console.log("✅ Login realizado com sucesso!"); console.log(` User ID: ${userId}`); console.log(` Email: ${loginResponse.data.user.email}\n`); // 2. Verificar se é médico (consultar tabela doctors) console.log("2️⃣ Verificando se usuário é médico...\n"); const doctorResponse = await axios.get( `${SUPABASE_URL}/rest/v1/doctors?user_id=eq.${userId}&select=*`, { headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${token}`, }, } ); if (doctorResponse.data.length > 0) { const doctor = doctorResponse.data[0]; console.log("✅ USUÁRIO É MÉDICO!"); console.log("\n📋 Dados do médico:"); console.log(` ID: ${doctor.id}`); console.log(` Nome: ${doctor.full_name}`); console.log(` Email: ${doctor.email}`); console.log(` CRM: ${doctor.crm}-${doctor.crm_uf}`); console.log(` Especialidade: ${doctor.specialty}`); console.log(` Ativo: ${doctor.active ? "Sim" : "Não"}`); console.log(` User ID: ${doctor.user_id}\n`); console.log("✅ LOGIN VÁLIDO - Pode acessar painel médico!"); console.log("🎯 Redirecionamento: /painel-medico\n"); } else { console.log("❌ USUÁRIO NÃO É MÉDICO"); console.log(" Este usuário não tem registro na tabela doctors"); console.log(" Acesso ao painel médico será negado.\n"); } // 3. Buscar consultas do médico (se aplicável) if (doctorResponse.data.length > 0) { console.log("3️⃣ Buscando consultas do médico...\n"); try { const consultasResponse = await axios.get( `${SUPABASE_URL}/rest/v1/appointments?doctor_id=eq.${doctorResponse.data[0].id}&select=*`, { headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${token}`, }, } ); console.log( ` Total de consultas: ${consultasResponse.data.length}\n` ); } catch (error) { console.log(" ⚠️ Tabela appointments não encontrada ou sem dados\n"); } } // 4. Resumo console.log("📊 RESUMO DO TESTE:\n"); console.log("✅ Autenticação funcionando corretamente"); console.log("✅ Verificação de role médico implementada"); console.log("✅ Token JWT válido gerado"); console.log( `✅ Médico: ${doctorResponse.data.length > 0 ? "SIM" : "NÃO"}\n` ); if (doctorResponse.data.length > 0) { console.log("🎉 TESTE BEM-SUCEDIDO!"); console.log( "O médico Fernando pode fazer login e acessar o painel médico.\n" ); } } catch (error) { console.error("❌ ERRO NO TESTE:", error.response?.data || error.message); if (error.response) { console.error("Status:", error.response.status); if (error.response.status === 400) { console.error("\n💡 Possíveis causas:"); console.error(" - Email ou senha incorretos"); console.error(" - Usuário não existe"); console.error( " - Email não confirmado (verificar configurações Supabase)" ); } } } } main();