<?php
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();

// Configurar headers para descarga CSV
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="temperatura_' . date('Y-m-d') . '.csv"');

$output = fopen('php://output', 'w');

// BOM para UTF-8
fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));

// Encabezados
fputcsv($output, [
    'Fecha',
    'Hora',
    'Equipo',
    'Código',
    'Tipo',
    'Temperatura (°C)',
    'Estado',
    'Operador',
    'Observaciones',
    'Acción Correctiva'
]);

// Datos
foreach ($registros as $r) {
    fputcsv($output, [
        date('d/m/Y', strtotime($r['fecha'])),
        $r['hora'],
        $r['equipo_nombre'],
        $r['equipo_codigo'],
        $r['equipo_tipo'],
        $r['temperatura'],
        $r['estado'],
        $r['operador_nombre'] ?? '',
        $r['observaciones'] ?? '',
        $r['accion_correctiva'] ?? ''
    ]);
}

fclose($output);
