#!/bin/env php
<?php require __DIR__ . '/vendor/autoload.php';

$username = 'username';
$password = 'password';
$base_uri = 'https://example.com:8443';

use BapCat\Phi\Phi;
use BapCat\Persist\Drivers\Local\LocalDriver;
use BapCat\Remodel\Registry;
use GuzzleHttp\Client;
use Illuminate\Database\ConnectionInterface;
use Jenssegers\Mongodb\Connection;

use BapCat\UniFi\UniFi;
use BapCat\UniFi\Actions;
use BapCat\UniFi\EntityProvider;

$ioc = Phi::instance();

// Grab filesystem directories
$persist = new LocalDriver(__DIR__);
$cache   = $persist->getDirectory('/cache');

$remodel = $ioc->make(Registry::class, [$cache]);

$entities = $ioc->make(EntityProvider::class, [$remodel]);
$entities->register();
$entities->boot();

$client = new Client([
  'base_uri' => $base_uri,
  'cookies'  => true,
  'verify'   => false
]);

$unifi = new UniFi($ioc, $client);
/*$unifi->login($username, $password, function(Actions $actions) {
  echo json_encode(json_decode((string)$actions->staStats('default')->getBody()), JSON_PRETTY_PRINT);
  //$actions->authorize('default', '00:00:00:00:00:00', 1);
});*/

use BapCat\UniFi\AccessPointGateway;
use BapCat\UniFi\EventGateway;
use BapCat\UniFi\SiteGateway;

var_dump('SITES -------------------------------------');
$sites = $ioc->make(SiteGateway::class);
var_dump($sites->query()->get());

var_dump('APS ---------------------------------------');
$aps = $ioc->make(AccessPointGateway::class);
var_dump($aps->query()->get());

var_dump('EVENTS -> GUEST AUTH + CONNECTED ----------');
$events = $ioc->make(EventGateway::class);
var_dump($events->query()->guestAuthorized()->orGuestConnected()->get());

var_dump('AT SITE? ----------------------------------');
var_dump($unifi->isAtSite('00:00:00:00:00:00', 'default'));
