agenda($eid, $fecha); // Enriquecer con servicios extra y pagos parciales $db = Database::getInstance(); foreach ($agenda as &$item) { $domId = (int)$item['domicilio_id']; $item['servicios_extra'] = $db->fetchAll( "SELECT * FROM lab_servicios_extra WHERE domicilio_id = ? ORDER BY created_at ASC", [$domId] ); // Parcialidades de pago (tabla nueva); vacío si no hay pagos registrados $item['pagos_detalle'] = $db->fetchAll( "SELECT modo, monto, notas FROM lab_domicilio_pagos WHERE domicilio_id = ? ORDER BY id ASC", [$domId] ); } unset($item); // Marcar si el domicilio fue creado por el propio usuario (para control de edición en portal enfermero) $adminUserId = adminId(); foreach ($agenda as &$item) { $item['es_propio'] = (!empty($item['creado_por']) && (int)$item['creado_por'] === $adminUserId); } unset($item); $totales = array_count_values(array_column($agenda, 'domicilio_estado')); jsonOk([ 'enfermera_id' => $eid, 'fecha' => $fecha, 'agenda' => $agenda, 'total' => count($agenda), 'totales' => $totales, ]); } catch (Exception $e) { jsonError($e->getMessage(), 500); }