<?php
require_once (dirname(__FILE__).'/../require.php');
error_reporting(~E_WARNING & ~E_NOTICE);
header('Content-Type: application/json');
if($_SERVER['REQUEST_METHOD'] === 'POST'){
    $paramsJson = file_get_contents('php://input');
    $params = json_decode($paramsJson);
    $token = $params->token;
    $deviceGroup = DeviceDB::getDeviceGroupByToken($token);
    if($deviceGroup === null){
        die('{"message":"Invalid token"}');
    }
    $roots = array();
    $z=0;
    $devices = DeviceDB::getDevicesByIdDeviceGroup($deviceGroup->id);
    if($devices !== null) {
        for ($i = 0; $i < count($devices); $i++) {
            $root = new stdClass();
            $device = $devices[$i];
            $root->device = $device;
            $alarms = DeviceDB::getDeviceAlarmsByIdDevice($device->id);
            if($alarms === null) {
                $alarms = array();
            }
            $liteSmallDeviceTracking = DeviceDB::getLastSmallTrackingByIdDevice($device->id);
            for ($j = 0; $j < count($alarms); $j++) {
               if($liteSmallDeviceTracking !== null) {
                    $alarms[$j]->latitude = $liteSmallDeviceTracking->latitude;
                    $alarms[$j]->longitude = $liteSmallDeviceTracking->longitude;
                    $alarms[$j]->accuracy = $liteSmallDeviceTracking->accuracy;
                    if($liteSmallDeviceTracking->bleMac !== "0") {
                        $alarms[$j]->internalId = $liteSmallDeviceTracking->bleMac;
                        if($liteSmallDeviceTracking->wifiMac !== "0"){
                            $diff = strtotime($liteSmallDeviceTracking->wifiMac) - strtotime($liteSmallDeviceTracking->bleMac);
                            if($diff > 180){
                                $alarms[$j]->internalId = $liteSmallDeviceTracking->wifiMac;
                            }
                        }
                    }
                    else{
                        $alarms[$j]->internalId = $liteSmallDeviceTracking->wifiMac;
                    }
                }
                $alarm = $alarms[$j];
                $id = $alarm->id;
                DeviceDB::setDeviceAlarmRead($id);
            }
            $root->alarms = $alarms;
            $watchdogAlarms = DeviceDB::getDeviceWatchdogAlarmsByIdDevice($device->id);
            if($watchdogAlarms === null) {
                $watchdogAlarms = array();
            }
            for ($j = 0; $j < count($watchdogAlarms); $j++) {
                if($liteSmallDeviceTracking !== null) {
                    $watchdogAlarms[$j]->latitude = $liteSmallDeviceTracking->latitude;
                    $watchdogAlarms[$j]->longitude = $liteSmallDeviceTracking->longitude;
                    $watchdogAlarms[$j]->accuracy = $liteSmallDeviceTracking->accuracy;
                    if($liteSmallDeviceTracking->bleMac !== "0") {
                        $watchdogAlarms[$j]->internalId = $liteSmallDeviceTracking->bleMac;
                        if($liteSmallDeviceTracking->wifiMac !== "0") {
                            $diff = strtotime($liteSmallDeviceTracking->wifiMac) - strtotime($liteSmallDeviceTracking->bleMac);
                            if ($diff > 180) {
                                $alarms[$j]->internalId = $liteSmallDeviceTracking->wifiMac;
                            }
                        }
                    }
                    else{
                        $watchdogAlarms[$j]->internalId = $liteSmallDeviceTracking->wifiMac;
                    }
                }
                $watchdog = $watchdogAlarms[$j];
                $id = $watchdog->id;
                DeviceDB::setDeviceWatchdogAlarmRead($id);
            }
            $root->watchdogAlarms = $watchdogAlarms;
            $roots[$z] = $root;
            $z++;
        }
        $main = new stdClass();
        $main->roots = $roots;
        $main->message = "OK";
        die(json_encode($main));
    }
    else{
        die('{"message":"No devices found"}');
    }
}
else if ($_SERVER['REQUEST_METHOD'] === 'PUT') {

}
else if ($_SERVER['REQUEST_METHOD'] === 'GET') {

}
