//ConsultaCadastroManager.jsx import { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { useAuth } from '../../_assets/utils/AuthProvider' import { UserInfos } from '../../_assets/utils/Functions-Endpoints/General' import API_KEY from '../../_assets/utils/apiKeys' import dayjs from 'dayjs' import FormConsultaPaciente from '../../components/paciente/FormConsultaPaciente' const ConsultaCadastroManager = () => { const { getAuthorizationHeader, user } = useAuth(); const navigate = useNavigate(); const [Dict, setDict] = useState({}); // patient_id fixo do Pedro Abravanel const [patientId, setPatientId] = useState('bf7d8323-05e1-437a-817c-f08eb5f174ef'); const [idUsuario, setIDusuario] = useState(''); const authHeader = getAuthorizationHeader(); // Opcional: ainda tenta buscar infos do usuário, mas NÃO mostra mais alerta useEffect(() => { const ColherInfoUsuario = async () => { try { if (!authHeader) return; const result = await UserInfos(authHeader); const pid = result?.patient_id || result?.profile?.id || user?.patient_id || user?.profile?.id || user?.user?.id; if (pid) { setPatientId(pid); } setIDusuario(result?.profile?.id || pid || ''); } catch (e) { console.error('Erro ao colher infos do usuário:', e); } }; ColherInfoUsuario(); }, [authHeader, user]); const handleSave = (Dict) => { // se por algum motivo não tiver, usa o fixo do Pedro const finalPatientId = patientId || 'bf7d8323-05e1-437a-817c-f08eb5f174ef'; 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: finalPatientId, // paciente Pedro doctor_id: Dict.doctor_id, scheduled_at: `${Dict.dataAtendimento}T${Dict.horarioInicio}:00.000Z`, duration_minutes: 30, appointment_type: Dict.tipo_consulta, patient_notes: 'Prefiro horário pela manhã', insurance_provider: Dict.convenio, status: 'confirmed', created_by: idUsuario || finalPatientId, }); const requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow', }; fetch( 'https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments', requestOptions ) .then(async (response) => { if (!response.ok) { const text = await response.text(); throw new Error(`Erro ao salvar consulta: ${response.status} - ${text}`); } return response.text(); }) .then(() => { alert('Consulta solicitada com sucesso!'); navigate('/paciente/agendamento/'); // volta para o calendário }) .catch((error) => { console.error('error', error); alert('Erro ao salvar a consulta. Tente novamente.'); }); }; return (
navigate('/paciente/agendamento/')} />
); }; export default ConsultaCadastroManager;