<?php
$pageTitle = 'Historial de Temperatura';
require_once __DIR__ . '/../../config/config.php';
requireLogin();

$db = getDB();

// Filtros
$equipo_id = intval($_GET['equipo_id'] ?? 0);
$estado = $_GET['estado'] ?? '';
$fecha_desde = $_GET['fecha_desde'] ?? date('Y-m-01');
$fecha_hasta = $_GET['fecha_hasta'] ?? date('Y-m-d');

// Construir consulta
$where = ["r.fecha BETWEEN ? AND ?"];
$params = [$fecha_desde, $fecha_hasta];

if ($equipo_id) {
    $where[] = "r.equipo_id = ?";
    $params[] = $equipo_id;
}

if ($estado) {
    $where[] = "r.estado = ?";
    $params[] = $estado;
}

$whereClause = implode(' AND ', $where);

$stmt = $db->prepare("
    SELECT r.*, e.nombre as equipo_nombre, e.codigo as equipo_codigo, e.tipo as equipo_tipo,
           u.nombre as operador_nombre
    FROM registros_temperatura r
    JOIN equipos_refrigeracion e ON r.equipo_id = e.id
    LEFT JOIN usuarios u ON r.operador_id = u.id
    WHERE $whereClause
    ORDER BY r.fecha DESC, r.hora DESC
");
$stmt->execute($params);
$registros = $stmt->fetchAll();

// Obtener equipos para filtro
$equipos = $db->query("SELECT * FROM equipos_refrigeracion WHERE activo = 1 ORDER BY nombre")->fetchAll();

// Estadísticas del período
$stmtStats = $db->prepare("
    SELECT 
        COUNT(*) as total,
        SUM(CASE WHEN estado = 'Normal' THEN 1 ELSE 0 END) as normales,
        SUM(CASE WHEN estado IN ('Alto', 'Bajo') THEN 1 ELSE 0 END) as alertas,
        SUM(CASE WHEN estado = 'Critico' THEN 1 ELSE 0 END) as criticos,
        ROUND(AVG(temperatura), 1) as temp_promedio,
        MIN(temperatura) as temp_min,
        MAX(temperatura) as temp_max
    FROM registros_temperatura r
    WHERE $whereClause
");
$stmtStats->execute($params);
$stats = $stmtStats->fetch();

require_once __DIR__ . '/../../includes/header.php';
?>

<div class="row mb-4">
    <div class="col-12">
        <nav aria-label="breadcrumb">
            <ol class="breadcrumb">
                <li class="breadcrumb-item"><a href="list.php">Control de Temperatura</a></li>
                <li class="breadcrumb-item active">Historial</li>
            </ol>
        </nav>
        <div class="d-flex justify-content-between align-items-center">
            <h2><i class="bi bi-clock-history me-2"></i>Historial de Temperatura</h2>
            <a href="registrar.php" class="btn btn-primary">
                <i class="bi bi-plus-lg"></i> Nuevo Registro
            </a>
        </div>
    </div>
</div>

<!-- Filtros -->
<div class="card mb-4">
    <div class="card-body">
        <form method="GET" class="row g-3">
            <div class="col-md-3">
                <label class="form-label">Equipo</label>
                <select name="equipo_id" class="form-select">
                    <option value="">Todos</option>
                    <?php foreach ($equipos as $eq): ?>
                    <option value="<?= $eq['id'] ?>" <?= $equipo_id == $eq['id'] ? 'selected' : '' ?>>
                        <?= htmlspecialchars($eq['nombre']) ?>
                    </option>
                    <?php endforeach; ?>
                </select>
            </div>
            <div class="col-md-2">
                <label class="form-label">Estado</label>
                <select name="estado" class="form-select">
                    <option value="">Todos</option>
                    <option value="Normal" <?= $estado == 'Normal' ? 'selected' : '' ?>>Normal</option>
                    <option value="Alto" <?= $estado == 'Alto' ? 'selected' : '' ?>>Alto</option>
                    <option value="Bajo" <?= $estado == 'Bajo' ? 'selected' : '' ?>>Bajo</option>
                    <option value="Critico" <?= $estado == 'Critico' ? 'selected' : '' ?>>Crítico</option>
                </select>
            </div>
            <div class="col-md-2">
                <label class="form-label">Desde</label>
                <input type="date" name="fecha_desde" class="form-control" value="<?= $fecha_desde ?>">
            </div>
            <div class="col-md-2">
                <label class="form-label">Hasta</label>
                <input type="date" name="fecha_hasta" class="form-control" value="<?= $fecha_hasta ?>">
            </div>
            <div class="col-md-3 d-flex align-items-end">
                <button type="submit" class="btn btn-primary me-2">
                    <i class="bi bi-search"></i> Filtrar
                </button>
                <a href="historial.php" class="btn btn-outline-secondary">
                    <i class="bi bi-x-lg"></i> Limpiar
                </a>
            </div>
        </form>
    </div>
</div>

<!-- Estadísticas del período -->
<div class="row mb-4">
    <div class="col-md-2">
        <div class="card bg-light">
            <div class="card-body text-center">
                <h4 class="mb-0"><?= number_format($stats['total']) ?></h4>
                <small class="text-muted">Total Registros</small>
            </div>
        </div>
    </div>
    <div class="col-md-2">
        <div class="card bg-success text-white">
            <div class="card-body text-center">
                <h4 class="mb-0"><?= number_format($stats['normales']) ?></h4>
                <small>Normales</small>
            </div>
        </div>
    </div>
    <div class="col-md-2">
        <div class="card bg-warning">
            <div class="card-body text-center">
                <h4 class="mb-0"><?= number_format($stats['alertas']) ?></h4>
                <small>Alertas</small>
            </div>
        </div>
    </div>
    <div class="col-md-2">
        <div class="card bg-danger text-white">
            <div class="card-body text-center">
                <h4 class="mb-0"><?= number_format($stats['criticos']) ?></h4>
                <small>Críticos</small>
            </div>
        </div>
    </div>
    <div class="col-md-2">
        <div class="card bg-info text-white">
            <div class="card-body text-center">
                <h4 class="mb-0"><?= $stats['temp_promedio'] ?? '-' ?>°C</h4>
                <small>Temp. Promedio</small>
            </div>
        </div>
    </div>
    <div class="col-md-2">
        <div class="card bg-secondary text-white">
            <div class="card-body text-center">
                <h4 class="mb-0"><?= ($stats['temp_min'] ?? '-') ?>° / <?= ($stats['temp_max'] ?? '-') ?>°</h4>
                <small>Mín / Máx</small>
            </div>
        </div>
    </div>
</div>

<!-- Tabla de registros -->
<div class="card">
    <div class="card-header d-flex justify-content-between align-items-center">
        <h5 class="mb-0">Registros (<?= count($registros) ?>)</h5>
        <button onclick="exportarCSV()" class="btn btn-sm btn-outline-success">
            <i class="bi bi-download"></i> Exportar CSV
        </button>
    </div>
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-striped table-hover" id="tablaHistorial">
                <thead class="table-dark">
                    <tr>
                        <th>Fecha/Hora</th>
                        <th>Equipo</th>
                        <th>Tipo</th>
                        <th class="text-center">Temperatura</th>
                        <th class="text-center">Estado</th>
                        <th>Operador</th>
                        <th>Observaciones</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($registros as $r): 
                        $clase = $r['estado'] == 'Normal' ? 'success' : ($r['estado'] == 'Critico' ? 'danger' : 'warning');
                    ?>
                    <tr>
                        <td>
                            <strong><?= date('d/m/Y', strtotime($r['fecha'])) ?></strong><br>
                            <small class="text-muted"><?= $r['hora'] ?></small>
                        </td>
                        <td>
                            <strong><?= htmlspecialchars($r['equipo_nombre']) ?></strong><br>
                            <small class="text-muted"><?= $r['equipo_codigo'] ?></small>
                        </td>
                        <td>
                            <span class="badge bg-<?= $r['equipo_tipo'] == 'Refrigeradora' ? 'primary' : 'info' ?>">
                                <?= $r['equipo_tipo'] ?>
                            </span>
                        </td>
                        <td class="text-center">
                            <span class="fs-5 fw-bold text-<?= $clase ?>"><?= $r['temperatura'] ?>°C</span>
                        </td>
                        <td class="text-center">
                            <span class="badge bg-<?= $clase ?>"><?= $r['estado'] ?></span>
                        </td>
                        <td><?= htmlspecialchars($r['operador_nombre'] ?? 'N/A') ?></td>
                        <td>
                            <?php if ($r['observaciones']): ?>
                                <small><?= htmlspecialchars($r['observaciones']) ?></small>
                            <?php endif; ?>
                            <?php if ($r['accion_correctiva']): ?>
                                <br><small class="text-danger">
                                    <i class="bi bi-exclamation-triangle"></i>
                                    <?= htmlspecialchars($r['accion_correctiva']) ?>
                                </small>
                            <?php endif; ?>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<script>
$(document).ready(function() {
    $('#tablaHistorial').DataTable({
        language: { url: 'https://cdn.datatables.net/plug-ins/1.13.7/i18n/es-ES.json' },
        order: [[0, 'desc']],
        pageLength: 25
    });
});

function exportarCSV() {
    const params = new URLSearchParams(window.location.search);
    params.set('export', 'csv');
    window.location.href = 'exportar.php?' + params.toString();
}
</script>

<?php require_once __DIR__ . '/../../includes/footer.php'; ?>
