108 lines
3.5 KiB
JavaScript
108 lines
3.5 KiB
JavaScript
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();
|