<?php
header('Content-Type: application/json');

try {
    // Conexión a PostgreSQL y consulta de la última medición
    $host = '192.168.0.14';
    $port = '5432';
    $dbname = 'lafardb';
    $user = 'Mecanity';
    $password = 'Mecanity.2022';

    $dsn = "pgsql:host=$host;port=$port;dbname=$dbname;";
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $queryRealtime = "
    SELECT
        temperature2 estado,
        timestamp
    FROM
        espvalues3
    WHERE
        timestamp >= NOW() - INTERVAL '5 minutes'  -- últimos 5 minutos
    ORDER BY
        timestamp ASC
";
    $stmtRealtime = $pdo->prepare($queryRealtime);
    $stmtRealtime->execute();
    $resultRealtime = $stmtRealtime->fetchAll(PDO::FETCH_ASSOC);

    // Consulta para calcular horas de funcionamiento diarias
    $queryDaily = "
    SELECT
        DATE(timestamp) AS fecha,
        SUM(temperature2) / 7200 AS horas_funcionamiento
    FROM
        espvalues3
    WHERE
        timestamp >= CURRENT_DATE - INTERVAL '7 days'
    GROUP BY
        fecha
    ORDER BY
        fecha ASC
";
    $stmtDaily = $pdo->prepare($queryDaily);
    $stmtDaily->execute();
    $resultDaily = $stmtDaily->fetchAll(PDO::FETCH_ASSOC);

    // Consulta para calcular horas de funcionamiento diarias
    $queryMonth = "
        SELECT
        SUM(temperature2) / 7200 as total_encendido_semana
        FROM
            espvalues3
        WHERE
            timestamp >= CURRENT_DATE - INTERVAL '30 days'
    ";
    $stmtMonth = $pdo->prepare($queryMonth);
    $stmtMonth->execute();
    $resultMonth = $stmtMonth->fetchAll(PDO::FETCH_ASSOC);

    $queryWeek = "
    SELECT
    SUM(temperature2) / 7200 as total_encendido_semana
    FROM
        espvalues3
    WHERE
        timestamp >= CURRENT_DATE - INTERVAL '3 days'
";
    $stmtWeek = $pdo->prepare($queryWeek);
    $stmtWeek->execute();
    $resultWeek = $stmtWeek->fetchAll(PDO::FETCH_ASSOC);

    $totalEncendidoSemanaQuery = $pdo->query($queryWeek);
    $totalEncendidoMesQuery = $pdo->query($queryMonth);

    $totalEncendidoSemana = $totalEncendidoSemanaQuery->fetchColumn();
    $totalEncendidoMes = $totalEncendidoMesQuery->fetchColumn();

    // Enviar los datos en JSON
    echo json_encode(['realtime' => $resultRealtime, 'daily' => $resultDaily, 'totalSemana' => $resultWeek, 'totalMes' => $resultMonth]);
} catch (PDOException $e) {
    echo "Error en la conexión: " . $e->getMessage();
}
