<?php
/**
 * GET /api/lab/get_tv_log.php — Bitácora de la voz del televisor.
 * Para la pantalla de Actividad: resumen de salud + últimos fallos, en llano.
 */
require_once __DIR__ . '/_helpers.php';
requireMethod('GET');

$pdo = db();

// Resumen de los últimos 7 días por evento
$resumen = $pdo->query(
    "SELECT evento, COUNT(*) n FROM turnero_tv_log
     WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)
     GROUP BY evento"
)->fetchAll(PDO::FETCH_KEY_PAIR);

// Últimos incidentes (lo normal —start/end— no se lista: solo lo que falló)
$stmt = $pdo->query(
    "SELECT evento, detalle, created_at FROM turnero_tv_log
     WHERE evento IN ('mudo', 'sin_start', 'error', 'lag')
     ORDER BY id DESC LIMIT 30"
);
$incidentes = [];
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $r) {
    $d = json_decode($r['detalle'] ?? '{}', true) ?: [];
    $incidentes[] = [
        'cuando' => $r['created_at'],
        'evento' => $r['evento'],
        'turno'  => $d['cod'] ?? null,
        'voz'    => $d['voz'] ?? null,
    ];
}

$anuncios = (int)($resumen['start'] ?? 0);
$mudos    = (int)($resumen['mudo'] ?? 0);
$avisos   = (int)($resumen['sin_start'] ?? 0) + (int)($resumen['error'] ?? 0);

jsonOk([
    'anuncios_7d'   => $anuncios,
    'completos_7d'  => (int)($resumen['end'] ?? 0),
    'mudos_7d'      => $mudos,
    'avisos_7d'     => $avisos,
    'incidentes'    => $incidentes,
]);
