forked from RiseUP/riseup_squad_03
fix(principal): integra auth, agenda e laudos com a api
This commit is contained in:
61
src/mappers/appointmentMapper.js
Normal file
61
src/mappers/appointmentMapper.js
Normal file
@@ -0,0 +1,61 @@
|
||||
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,
|
||||
}
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user