import axios from "axios"; const SUPABASE_URL = "https://rjzjnbzjsdxgidxvmsmx.supabase.co"; const SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJqempuYnpqc2R4Z2lkeHZtc214Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDUwNzIyNzYsImV4cCI6MjA2MDY0ODI3Nn0.S6xtAkEZZq5W2qjSFu9xoTQCrJ8VJpIoRiDn65gvZNM"; async function criarUsuarioJulia() { try { console.log("πŸ“ Criando usuΓ‘ria Julia Carvalho...\n"); // 1. Criar usuΓ‘rio no Supabase Auth console.log("πŸ” Criando usuΓ‘rio na autenticaΓ§Γ£o..."); const signupResponse = await axios.post( `${SUPABASE_URL}/auth/v1/signup`, { email: "secretaria.mediconnect@gmail.com", password: "secretaria@mediconnect", data: { full_name: "Julia Carvalho", role: "admin", }, }, { headers: { apikey: SUPABASE_ANON_KEY, "Content-Type": "application/json", }, } ); const userId = signupResponse.data.user?.id; const accessToken = signupResponse.data.access_token; if (!userId) { throw new Error("NΓ£o foi possΓ­vel obter o ID do usuΓ‘rio criado"); } console.log(`βœ… UsuΓ‘rio criado com sucesso!`); console.log(` ID: ${userId}`); console.log(` Email: secretaria.mediconnect@gmail.com\n`); // 2. Criar perfil do usuΓ‘rio na tabela users console.log("πŸ‘€ Criando perfil na tabela users..."); const userResponse = await axios.post( `${SUPABASE_URL}/rest/v1/users`, { id: userId, email: "secretaria.mediconnect@gmail.com", full_name: "Julia Carvalho", is_admin: true, is_secretary: true, is_admin_or_manager: true, }, { headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", Prefer: "return=representation", }, } ); console.log("βœ… Perfil criado com sucesso!\n"); // 3. Adicionar role na tabela user_roles console.log("🎭 Adicionando role admin..."); const roleResponse = await axios.post( `${SUPABASE_URL}/rest/v1/user_roles`, { user_id: userId, role: "admin", }, { headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", Prefer: "return=representation", }, } ); console.log("βœ… Role admin adicionada com sucesso!\n"); // 4. Testar login console.log("πŸ”‘ Testando login..."); const loginResponse = await axios.post( `${SUPABASE_URL}/auth/v1/token?grant_type=password`, { email: "secretaria.mediconnect@gmail.com", password: "secretaria@mediconnect", }, { headers: { apikey: SUPABASE_ANON_KEY, "Content-Type": "application/json", }, } ); console.log("βœ… Login realizado com sucesso!\n"); // 5. Verificar permissΓ΅es de acesso aos pacientes console.log("πŸ₯ Verificando acesso aos pacientes..."); const pacientesResponse = await axios.get( `${SUPABASE_URL}/rest/v1/patients?select=id,full_name,email&limit=5`, { headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${loginResponse.data.access_token}`, }, } ); console.log( `βœ… Acesso aos pacientes OK! (${pacientesResponse.data.length} pacientes encontrados)\n` ); if (pacientesResponse.data.length > 0) { console.log("πŸ“‹ Primeiros pacientes:"); pacientesResponse.data.forEach((p) => { console.log(` β€’ ${p.full_name} - ${p.email}`); }); console.log(""); } console.log("═══════════════════════════════════════════════════"); console.log("βœ… USUÁRIA JULIA CARVALHO CRIADA COM SUCESSO!"); console.log("═══════════════════════════════════════════════════"); console.log(""); console.log("πŸ“§ Email: secretaria.mediconnect@gmail.com"); console.log("πŸ”‘ Senha: secretaria@mediconnect"); console.log("πŸ‘€ Nome: Julia Carvalho"); console.log("🎭 Role: admin (permissΓ΅es completas)"); console.log(""); console.log("🌐 Login em: http://localhost:5173/login-secretaria"); console.log(""); } catch (error) { console.error( "❌ Erro ao criar usuΓ‘ria:", error.response?.data || error.message ); if (error.response?.data?.code === "23505") { console.log("\n⚠️ UsuΓ‘ria jΓ‘ existe! Tente fazer login com:"); console.log(" Email: secretaria.mediconnect@gmail.com"); console.log(" Senha: secretaria@mediconnect"); } } } criarUsuarioJulia();