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();