<?php
require_once __DIR__ . '/../config/database.php';
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');

$database = new Database();
$conn = $database->getConnection();

$id = intval($_GET['id'] ?? 0);
if ($id <= 0) {
    echo json_encode(['success'=>false,'message'=>'ID tidak valid']);
    exit;
}

$stmt = $conn->prepare("SELECT serial_number FROM ftth_items WHERE id=:id");
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$row) {
    echo json_encode(['success'=>false,'message'=>'Data tidak ditemukan']);
    exit;
}

$serialNumber = $row['serial_number'];

// Default nilai
$rxPower = null;
$pppoeIP = null;
$voltage = null;
$uptime  = null;
$inform  = null;

if ($serialNumber) {
    $query = json_encode(["_id" => $serialNumber]);
    $url = "http://rmtstb.megadataisp.net:7557/devices/?query=" . urlencode($query);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    if ($response) {
        $data = json_decode($response, true);

        if (isset($data[0])) {

            // RX Power
            if (isset($data[0]['VirtualParameters']['RXPower']['_value'])) {
                $rxPower = $data[0]['VirtualParameters']['RXPower']['_value'] . " dBm";
            }

            // PPPoE IP
            if (isset($data[0]['VirtualParameters']['pppoeIP']['_value'])) {
                $pppoeIP = $data[0]['VirtualParameters']['pppoeIP']['_value'];
            }

            // Voltage (VP)
            if (isset($data[0]['VirtualParameters']['Voltage']['_value'])) {
    $rawVoltage = $data[0]['VirtualParameters']['Voltage']['_value'];

    // konversi ke Volt (dibagi 10000)
    $voltageConvert = $rawVoltage / 10000;

    // ambil 2 angka belakang
    $voltage = number_format($voltageConvert, 2) . " V";
}

            // Uptime (detik → HH:MM:SS)
            if (isset($data[0]['InternetGatewayDevice']['DeviceInfo']['UpTime']['_value'])) {
                $seconds = (int)$data[0]['InternetGatewayDevice']['DeviceInfo']['UpTime']['_value'];
                $uptime = gmdate("H:i:s", $seconds);
            }

            // Inform terakhir
            if (isset($data[0]['Events']['Inform'])) {
                $inform = $data[0]['Events']['Inform'];
            }
        }
    }
}

// Output JSON
echo json_encode([
    'success' => true,
    'data' => [
        'serial_number' => $serialNumber,
        'rx_power'      => $rxPower ?? 'Tidak tersedia',
        'pppoe_ip'      => $pppoeIP ?? 'Tidak tersedia',
        'voltage'       => $voltage ?? 'Tidak tersedia',
        'uptime'        => $uptime ?? 'Tidak tersedia',
        'inform'        => $inform ?? 'Tidak tersedia'
    ]
]);
