riseup-squad18/MEDICONNECT 2/scripts/criar-secretaria.js
2025-10-07 14:53:47 -03:00

108 lines
3.5 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import fetch from "node-fetch";
const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co";
const SUPABASE_ANON_KEY =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ";
console.log("\n👩💼 CRIAR USUÁRIO SECRETÁRIA\n");
async function criarSecretaria() {
// Dados da secretária
const secretariaData = {
email: "secretaria@mediconnect.com",
password: "secretaria123",
nome: "Maria Secretária",
telefone: "79999998888",
cpf: "11111111111",
};
console.log("📝 Criando secretária...");
console.log(` Email: ${secretariaData.email}`);
console.log(` Senha: ${secretariaData.password}`);
console.log(` Nome: ${secretariaData.nome}\n`);
try {
// PASSO 1: Criar usuário no auth
console.log("🔐 Criando usuário de autenticação...\n");
const signupResponse = await fetch(`${SUPABASE_URL}/auth/v1/signup`, {
method: "POST",
headers: {
apikey: SUPABASE_ANON_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
email: secretariaData.email,
password: secretariaData.password,
data: {
full_name: secretariaData.nome,
phone: secretariaData.telefone,
cpf: secretariaData.cpf,
role: "secretaria",
},
}),
});
if (!signupResponse.ok) {
const error = await signupResponse.text();
console.log("❌ Erro ao criar usuário:", signupResponse.status);
console.log(error);
return;
}
const signupData = await signupResponse.json();
const userId = signupData.user?.id;
const accessToken = signupData.access_token;
console.log("✅ Usuário criado com sucesso!");
console.log(` User ID: ${userId}`);
console.log(` Token: ${accessToken?.substring(0, 50)}...\n`);
// PASSO 2: Criar perfil na tabela profiles (se existir)
console.log("📋 Criando perfil...\n");
const profileResponse = await fetch(`${SUPABASE_URL}/rest/v1/profiles`, {
method: "POST",
headers: {
apikey: SUPABASE_ANON_KEY,
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
Prefer: "return=representation",
},
body: JSON.stringify({
id: userId,
full_name: secretariaData.nome,
email: secretariaData.email,
phone: secretariaData.telefone,
role: "secretaria",
}),
});
if (profileResponse.ok || profileResponse.status === 201) {
console.log("✅ Perfil criado com sucesso!\n");
} else if (profileResponse.status === 409) {
console.log("⚠️ Perfil já existe (isso é normal)\n");
} else {
const error = await profileResponse.text();
console.log("⚠️ Aviso ao criar perfil:", profileResponse.status);
console.log(error);
console.log(
"(Isso pode ser normal se a tabela profiles não existir ou tiver trigger)\n"
);
}
// PASSO 3: Verificar se foi criado
console.log("📊 RESUMO:\n");
console.log("✅ Secretária criada com sucesso!");
console.log("\n📝 Credenciais para login:");
console.log(` Email: ${secretariaData.email}`);
console.log(` Senha: ${secretariaData.password}`);
console.log("\n🔗 Acesse: http://localhost:5173/secretaria");
console.log("\n");
} catch (error) {
console.error("❌ Erro:", error.message);
}
}
criarSecretaria();