forked from RiseUP/riseup_squad_03
62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
export const appointmentMapper = {
|
|
toUi(apiData) {
|
|
if (!apiData) return null
|
|
|
|
const patient = apiData.patient || apiData.paciente || apiData.patients || {}
|
|
const professional = apiData.doctor || apiData.medico || apiData.professional || apiData.doctors || {}
|
|
|
|
return {
|
|
id: apiData.id || apiData.agendamento_id,
|
|
patientId: apiData.patientId || apiData.patient_id || apiData.paciente_id || patient.id,
|
|
patient: apiData.patientName || apiData.patient_name || patient.full_name || patient.nome || patient.name || 'Paciente',
|
|
professional:
|
|
apiData.professional ||
|
|
apiData.professionalName ||
|
|
apiData.doctor_name ||
|
|
apiData.medico_nome ||
|
|
professional.name ||
|
|
professional.nome ||
|
|
'Medico(a)',
|
|
date: apiData.date || apiData.data || apiData.appointment_date || apiData.data_agendamento || '',
|
|
time: apiData.time || apiData.hora || apiData.appointment_time || apiData.horario || '',
|
|
type: apiData.type || apiData.tipo || apiData.tipo_consulta || 'Consulta',
|
|
mode: apiData.mode || apiData.modalidade || apiData.formato || 'Presencial',
|
|
status: apiData.status || apiData.situacao || 'Aguardando',
|
|
room: apiData.room || apiData.sala || apiData.local || 'Consultorio 1',
|
|
}
|
|
},
|
|
|
|
toApi(uiData, dialect = 'api') {
|
|
if (dialect === 'supabase') {
|
|
return {
|
|
patient_id: uiData.patientId,
|
|
doctor_id: uiData.professionalId || null,
|
|
appointment_date: uiData.date,
|
|
appointment_time: uiData.time,
|
|
type: uiData.type,
|
|
mode: uiData.mode,
|
|
status: uiData.status || 'Confirmada',
|
|
room: uiData.room,
|
|
}
|
|
}
|
|
|
|
return {
|
|
patient_id: uiData.patientId,
|
|
paciente_id: uiData.patientId,
|
|
doctor_id: uiData.professionalId || null,
|
|
medico_id: uiData.professionalId || null,
|
|
appointment_date: uiData.date,
|
|
data: uiData.date,
|
|
appointment_time: uiData.time,
|
|
hora: uiData.time,
|
|
type: uiData.type,
|
|
tipo: uiData.type,
|
|
mode: uiData.mode,
|
|
modalidade: uiData.mode,
|
|
status: uiData.status || 'Confirmada',
|
|
room: uiData.room,
|
|
sala: uiData.room,
|
|
}
|
|
},
|
|
}
|