<?php
session_start();
include 'config.php'; // Pastikan koneksi database sudah terjalin

date_default_timezone_set('Asia/Jakarta');

// Cek apakah serialNumber diterima via GET
if (isset($_GET['serialNumber'])) {
    $serialNumber = $_GET['serialNumber'];

    // Query untuk mengambil lastSeen berdasarkan serialNumber
    $query = "SELECT lastSeen FROM device_status WHERE serialNumber = :serialNumber ORDER BY lastSeen DESC LIMIT 1";
    $stmt = $db->prepare($query);
    $stmt->bindParam(':serialNumber', $serialNumber, PDO::PARAM_STR);
    $stmt->execute();

    $result = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($result) {
        $lastSeen = $result['lastSeen'];
        $currentTime = new DateTime(); // Waktu saat ini
        $lastSeenTime = new DateTime($lastSeen); // Waktu lastSeen dari database
        $interval = $currentTime->diff($lastSeenTime); // Menghitung selisih waktu

        // Debug: Cek interval waktu
        error_log("Current Time: " . $currentTime->format('Y-m-d H:i:s') . " | Last Seen: {$lastSeen} | Interval Time: {$interval->i} minutes and {$interval->s} seconds");

        // Jika lastSeen lebih dari 20 detik yang lalu, dianggap offline
        $status = ($interval->i == 0 && $interval->s <= 10) ? 'online' : 'offline'; // Jika dalam 20 detik, online

        // Mengembalikan hasil dalam format JSON
        echo json_encode([
            'status' => 'success',
            'lastSeen' => $lastSeen,
            'deviceStatus' => $status, // Status perangkat dihitung dinamis (online atau offline)
            'statusClass' => ($status == 'online' ? 'bg-success' : 'bg-danger') // Status class
        ]);
    } else {
        echo json_encode(['status' => 'error', 'message' => 'Device not found']);
    }
}
?>
