129 lines
4.2 KiB
JavaScript
129 lines
4.2 KiB
JavaScript
const axios = require("axios");
|
|
|
|
const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co";
|
|
const SUPABASE_ANON_KEY =
|
|
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ";
|
|
|
|
async function createAppointment() {
|
|
try {
|
|
console.log("🔐 Fazendo login como Aurora...");
|
|
|
|
// Login como Aurora
|
|
const loginResponse = await axios.post(
|
|
`${SUPABASE_URL}/auth/v1/token?grant_type=password`,
|
|
{
|
|
email: "aurora-nascimento94@gmx.com",
|
|
password: "auroranasc94",
|
|
},
|
|
{
|
|
headers: {
|
|
apikey: SUPABASE_ANON_KEY,
|
|
"Content-Type": "application/json",
|
|
},
|
|
}
|
|
);
|
|
|
|
const auroraToken = loginResponse.data.access_token;
|
|
console.log("✅ Login realizado como Aurora");
|
|
|
|
// Buscar o patient_id da Aurora
|
|
console.log("\n👤 Buscando dados da paciente...");
|
|
const patientResponse = await axios.get(
|
|
`${SUPABASE_URL}/rest/v1/patients?user_id=eq.${loginResponse.data.user.id}`,
|
|
{
|
|
headers: {
|
|
apikey: SUPABASE_ANON_KEY,
|
|
Authorization: `Bearer ${auroraToken}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
if (!patientResponse.data || patientResponse.data.length === 0) {
|
|
throw new Error("Paciente não encontrada");
|
|
}
|
|
|
|
const patientId = patientResponse.data[0].id;
|
|
console.log(`✅ Patient ID: ${patientId}`);
|
|
|
|
// Buscar disponibilidade do Dr. Fernando para segunda-feira
|
|
console.log("\n📅 Buscando disponibilidade do Dr. Fernando...");
|
|
const availabilityResponse = await axios.get(
|
|
`${SUPABASE_URL}/rest/v1/doctor_availability?doctor_id=eq.6dad001d-229b-40b5-80f3-310243c4599c&weekday=eq.monday`,
|
|
{
|
|
headers: {
|
|
apikey: SUPABASE_ANON_KEY,
|
|
Authorization: `Bearer ${auroraToken}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
if (!availabilityResponse.data || availabilityResponse.data.length === 0) {
|
|
throw new Error("Disponibilidade não encontrada");
|
|
}
|
|
|
|
const availability = availabilityResponse.data[0];
|
|
console.log(
|
|
`✅ Disponibilidade encontrada: ${availability.start_time} - ${availability.end_time}`
|
|
);
|
|
|
|
// Criar consulta para próxima segunda-feira às 10:00
|
|
const today = new Date();
|
|
const daysUntilMonday = (1 - today.getDay() + 7) % 7 || 7; // Próxima segunda
|
|
const appointmentDate = new Date(today);
|
|
appointmentDate.setDate(today.getDate() + daysUntilMonday);
|
|
appointmentDate.setHours(10, 0, 0, 0);
|
|
|
|
const scheduledAt = appointmentDate.toISOString();
|
|
|
|
console.log(`\n📝 Criando consulta para ${scheduledAt}...`);
|
|
|
|
const appointmentData = {
|
|
patient_id: patientId,
|
|
doctor_id: "6dad001d-229b-40b5-80f3-310243c4599c",
|
|
scheduled_at: scheduledAt,
|
|
duration_minutes: 30,
|
|
appointment_type: "presencial",
|
|
chief_complaint: "Consulta de rotina",
|
|
};
|
|
|
|
const appointmentResponse = await axios.post(
|
|
`${SUPABASE_URL}/rest/v1/appointments`,
|
|
appointmentData,
|
|
{
|
|
headers: {
|
|
apikey: SUPABASE_ANON_KEY,
|
|
Authorization: `Bearer ${auroraToken}`,
|
|
"Content-Type": "application/json",
|
|
Prefer: "return=representation",
|
|
},
|
|
}
|
|
);
|
|
|
|
console.log("\n✅ Consulta criada com sucesso!");
|
|
console.log("\n📋 Detalhes da consulta:");
|
|
console.log(` - Paciente: Aurora Sabrina Clara Nascimento`);
|
|
console.log(` - Médico: Dr. Fernando Pirichowski`);
|
|
console.log(` - Data/Hora: ${scheduledAt}`);
|
|
console.log(` - Duração: 30 minutos`);
|
|
console.log(` - Tipo: presencial`);
|
|
|
|
if (appointmentResponse.data && appointmentResponse.data.length > 0) {
|
|
console.log(` - ID da consulta: ${appointmentResponse.data[0].id}`);
|
|
console.log(
|
|
` - Order Number: ${appointmentResponse.data[0].order_number}`
|
|
);
|
|
console.log(` - Status: ${appointmentResponse.data[0].status}`);
|
|
}
|
|
} catch (error) {
|
|
console.error(
|
|
"❌ Erro ao criar consulta:",
|
|
error.response?.data || error.message
|
|
);
|
|
if (error.response?.data) {
|
|
console.error("Detalhes:", JSON.stringify(error.response.data, null, 2));
|
|
}
|
|
}
|
|
}
|
|
|
|
createAppointment();
|