import React, { useEffect, useState } from 'react'; import FormNovaConsulta from '../components/AgendarConsulta/FormNovaConsulta'; import API_KEY from '../components/utils/apiKeys'; import { useAuth } from '../components/utils/AuthProvider'; import dayjs from 'dayjs'; import { UserInfos } from '../components/utils/Functions-Endpoints/General'; const AgendamentoCadastroManager = ({ setPageConsulta, Dict, onSaved }) => { const { getAuthorizationHeader, user } = useAuth(); const [agendamento, setAgendamento] = useState({ status: 'confirmed' }); const [idUsuario, setIDusuario] = useState('0'); // patient_id do paciente logado (ou fallback para o Pedro) const patientId = 'bf7d8323-05e1-437a-817c-f08eb5f174ef'; const authHeader = getAuthorizationHeader(); useEffect(() => { if (!Dict) { setAgendamento({ status: 'confirmed' }); } else { setAgendamento(Dict); } const ColherInfoUsuario = async () => { try { const result = await UserInfos(authHeader); setIDusuario(result?.profile?.id); } catch (e) { console.error('Erro ao buscar infos do usuário:', e); } }; if (authHeader) { ColherInfoUsuario(); } }, [Dict, authHeader]); const handleSave = async (DictForm) => { if (!authHeader) { alert('Sem autorização. Faça login novamente.'); return; } const myHeaders = new Headers(); myHeaders.append('apikey', API_KEY); myHeaders.append('Authorization', authHeader); myHeaders.append('Content-Type', 'application/json'); const raw = JSON.stringify({ patient_id: patientId, // paciente logado doctor_id: DictForm.doctor_id, scheduled_at: `${DictForm.dataAtendimento}T${DictForm.horarioInicio}:00`, duration_minutes: 30, appointment_type: DictForm.tipo_consulta, patient_notes: '', insurance_provider: DictForm.convenio, status: 'confirmed', // ou 'confirmed' created_by: idUsuario, created_at: dayjs().toISOString(), }); const requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow', }; try { const response = await fetch( 'https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments', requestOptions ); if (response.ok) { if (onSaved) onSaved(); // pai recarrega e fecha else setPageConsulta(false); } else { console.error('Erro ao criar agendamento:', await response.text()); alert('Falha ao criar agendamento.'); } } catch (error) { console.error('Erro de rede:', error); alert('Erro de rede ao salvar agendamento.'); } }; return (
setPageConsulta(false)} />
); }; export default AgendamentoCadastroManager;