<?php
/** GET /api/lab/get_enfermeras.php — Lista de enfermeras */
require_once __DIR__ . '/_helpers.php';
requireMethod('GET');

try {
    $enf = new Enfermera();

    // Perfil + agenda de una sola enfermera
    if (!empty($_GET['id'])) {
        $id     = (int)$_GET['id'];
        $e      = $enf->obtener($id);
        if (!$e) {
            jsonError('Enfermera no encontrada', 404);
        }
        $fecha        = $_GET['fecha'] ?? date('Y-m-d');
        $e['agenda']  = $enf->agenda($id, $fecha);

        // Incluir info de acceso al sistema (si tiene usuario creado)
        $db = Database::getInstance();
        $u  = $db->fetch(
            'SELECT id, username FROM admin_users WHERE enfermera_id = ? AND role = "enfermero" LIMIT 1',
            [$id]
        );
        $e['usuario_acceso'] = $u ?: null;

        jsonOk(['enfermera' => $e]);
    }

    $soloActivas = !isset($_GET['todas']) || $_GET['todas'] !== '1';
    $lista       = $enf->listar($soloActivas);

    // Enriquecer con username de acceso para cada enfermera
    $db = Database::getInstance();
    foreach ($lista as &$item) {
        $u = $db->fetch(
            'SELECT username FROM admin_users WHERE enfermera_id = ? AND is_active = 1 LIMIT 1',
            [$item['id']]
        );
        $item['username_acceso'] = $u['username'] ?? null;
    }
    unset($item);

    jsonOk(['data' => $lista, 'total' => count($lista)]);
} catch (Exception $e) {
    jsonError($e->getMessage(), 500);
}
