<?php
/** GET /api/lab/get_pacientes.php — Lista paginada de pacientes o detalle por ID */
require_once __DIR__ . '/_helpers.php';
requireMethod('GET');

try {
    $pac = new Paciente();

    // Detalle de un paciente específico
    if (!empty($_GET['id']) && ctype_digit($_GET['id'])) {
        $row = $pac->obtener((int)$_GET['id']);
        if (!$row) jsonError('Paciente no encontrado', 404);
        jsonOk(['data' => [$row]]);
    }

    if (isset($_GET['stats'])) {
        jsonOk(['stats' => $pac->stats()]);
    }

    $busqueda = trim($_GET['busqueda'] ?? $_GET['search'] ?? '');
    $pagina   = max(1, (int)($_GET['page'] ?? $_GET['pagina'] ?? 1));
    $por      = max(1, min(100, (int)($_GET['limit'] ?? $_GET['por_pagina'] ?? 30)));
    $origen   = in_array($_GET['origen'] ?? '', ['manual', 'lab', 'whatsapp'], true)
                ? $_GET['origen'] : '';

    jsonOk($pac->listar($busqueda, $pagina, $por, $origen));
} catch (Exception $e) {
    jsonError($e->getMessage(), 500);
}
