<?php

require_once "../controllers/PlanoPixCtl.php";
require_once "../controllers/ParceiroCtl.php";
require_once "../controllers/DispositivosCtl.php";
include_once "gerarToken.php";

if( $_SERVER['REQUEST_METHOD'] !== "POST" ){
    $retorno = array("status" => false, "motivoCritica" => 'Somente permitido método POST!');
    echo json_encode($retorno,  JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    exit();
}

$header = null;
foreach (getallheaders() as $name => $value) {
    $header[strtolower($name)]= $value;
}

if (empty($header['adgtoken']) || is_null($header['adgtoken'])){
    $retorno = array("status" => false, "motivoCritica" => 'Segurança: informação vazia.');
    echo json_encode($retorno,  JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    exit();
}

$jwt = $header['adgtoken'];

$json = file_get_contents('php://input');
if (empty($json) || is_null($json)){
    $retorno = array("status" => false, "motivoCritica" => 'Requisição Vazia!');
    echo json_encode($retorno,  JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    exit();
}

//efeuta o teste do Token

if (abreToken($jwt, '#@2022Adg$#CDX') != "OK") {
    $retorno = array("status" => false, "motivoCritica" => 'Token Inválido');
    echo json_encode($retorno, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    exit();
}

$resultado = json_decode($json);

$retorno = "";

if (!empty($resultado)) {

    $ec = $resultado->ec;
    $numSerie = $resultado->numSerie;
    $documento = preg_replace('/[^0-9]/', '', $resultado->documento);
    $parceiroId = 12;

    //busca tabela pelo numero serie do POS
    $Dispositivo = new DispositivosCtl();
    $Dispositivo->setDptNumSerie($numSerie);
    $resDispositivo = $Dispositivo->getPorNumSerieAtivo();
    if($resDispositivo->rowCount() > 0) {
        $itemDispositico = $resDispositivo->fetch(PDO::FETCH_OBJ);

        if($itemDispositico->cli_id > 0) {

            $Parceiro = new ParceiroCtl();
            $Parceiro->setCliId($itemDispositico->cli_id);
            $resParceiro = $Parceiro->getParceiroPorCliId();

            if ($resParceiro->rowCount() > 0) {
                $dadosParceiro = $resParceiro->fetch(PDO::FETCH_OBJ);
                $parceiroId = $dadosParceiro->id;
            }
        }
    }

    if(isset($parceiroId)){

        $Planos = new PlanoPixCtl();
        $Planos->setParceiroId($parceiroId);
        $resListaPlanos = $Planos->getListaAtivosPorParceiro();
        if($resListaPlanos->rowCount() > 0){
            $planoItens = $resListaPlanos->fetchAll(PDO::FETCH_ASSOC);

            $retorno = array("status" => true,
                "taxes" => $planoItens
            );

        }else{
            $retorno = array("status" => false,
                "motivoCritica" => 'Lista de planos Vazia.'
            );
        }


    }else{
        $retorno = array("status" => false,
            "motivoCritica" => 'Documento nao informado'
        );
    }


}else{
    $retorno = array("status" => false, "liberado"=>false, "erro"=>true, "motivoCritica" => 'Requisição Vazia!');
}

echo json_encode($retorno,  JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);