<?php
/**
 * GET /api/lab/get_notas_domicilio.php
 * Devuelve todas las notas de un domicilio.
 *
 * Parámetros GET:
 *   domicilio_id  (requerido)
 *
 * Respuesta: { success, data: [ nota, … ] }
 *   Orden: ficha clínica primero, luego libres por created_at ASC
 */
require_once __DIR__ . '/_helpers.php';
requireMethod('GET');

try {
    $domId = (int)($_GET['domicilio_id'] ?? 0);
    if (!$domId) jsonError('domicilio_id requerido');

    $db = Database::getInstance();

    // Verificar acceso: enfermero solo puede ver si está asignado
    if (userRole() === 'enfermero') {
        $enfId = enfermeraId();
        $asig  = $db->fetch(
            "SELECT id FROM lab_asignaciones
              WHERE domicilio_id = ? AND enfermera_id = ?",
            [$domId, $enfId]
        );
        if (!$asig) jsonError('Sin acceso a este domicilio', 403);
    }

    $notas = $db->fetchAll(
        "SELECT n.*, e.nombre_completo AS enfermera_nombre
           FROM lab_domicilio_notas n
           LEFT JOIN lab_enfermeras e ON e.id = n.enfermera_id
          WHERE n.domicilio_id = ?
          ORDER BY FIELD(n.tipo,'clinica','libre'), n.created_at ASC",
        [$domId]
    );

    jsonOk(['data' => $notas]);

} catch (Exception $e) {
    error_log('[get_notas_domicilio] ' . $e->getMessage());
    jsonError($e->getMessage(), 500);
}
