import InputMask from "react-input-mask"; import "./style/formagendamentos.css"; import { useState, useEffect } from "react"; const FormNovaDisponibilidade = ({ onCancel, doctorID }) => { const [dadosAtendimento, setDadosAtendimento] = useState({ profissional: '', tipoAtendimento: '', dataAtendimento: '', inicio: '', termino: '', motivo: '' }); const handleAtendimentoChange = (e) => { const { value, name } = e.target; setDadosAtendimento(prev => ({ ...prev, [name]: value })); }; const handleSubmitExcecao = async (e) => { e.preventDefault(); console.log("Modo Emergência Ativado: Tentando criar Exceção com novo endpoint."); const { profissional, dataAtendimento, tipoAtendimento, inicio, termino, motivo } = dadosAtendimento; if (!profissional || !dataAtendimento || !tipoAtendimento) { alert("Por favor, preencha o Profissional, Data, e Tipo da exceção."); return; } const payload = { doctor_id: profissional, date: dataAtendimento, start_time: inicio + ":00" || null, // Adiciona ":00" se o input type="time" retornar apenas HH:MM end_time: termino + ":00" || null, // Adiciona ":00" kind: tipoAtendimento, reason: motivo, }; var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var requestOptions = { method: 'POST', headers: myHeaders, body: JSON.stringify(payload), redirect: 'follow' }; try { const response = await fetch("https://mock.apidog.com/m1/1053378-0-default/rest/v1/doctor_exceptions", requestOptions); const result = await response.json(); if (response.ok || response.status === 201) { console.log("Exceção de emergência criada com sucesso:", result); alert(`Consulta de emergência agendada como exceção! Detalhes: ${JSON.stringify(result)}`); } else { console.error("Erro ao criar exceção de emergência:", result); alert(`Erro ao agendar exceção. Status: ${response.status}. Detalhes: ${result.message || JSON.stringify(result)}`); } } catch (error) { console.error("Erro na requisição para criar exceção:", error); alert("Erro de comunicação com o servidor ou formato de resposta inválido."); } }; return (