<?php

require_once "../controllers/ApiVeiculosCtl.php";
require_once "../controllers/PlanoVeiculoCtl.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 = 1;
    if(isset($resultado->codParceiro)){
        $parceiroId = $resultado->codParceiro;
    }

    if(isset($documento)){
        $ApiVeiculos = new ApiVeiculosCtl();
        $resListaEstados = $ApiVeiculos->getListaAtivosPorParceiro($parceiroId);
        if($resListaEstados->rowCount() > 0){

            $Planos = new PlanoVeiculoCtl();

            $listaCompleta[] = "";
            $i = 0;

            while ($estados = $resListaEstados->fetch(PDO::FETCH_OBJ)) {
                $Planos->setApiId($estados->id);
                $Planos->setParceiroId($parceiroId);
                $planoItens = $Planos->getListaAtivosPorEstadoParceiro()->fetchAll(PDO::FETCH_ASSOC);

                $listaCompleta[$i] = array(
                    "id"=>$estados->id,
                    "estado"=>$estados->estado,
                    "envia_placa"=>$estados->envia_placa,
                    "envia_renavan"=>$estados->envia_renavan,
                    "envia_documento"=>$estados->envia_documento,
                    "gateway"=>$estados->gateway,
                    "ativo"=>$estados->ativo,
                    "taxes"=>$planoItens);

                $i++;
            }

            $retorno = array("status" => true,
                "dados" => $listaCompleta
            );
        }else{
            $retorno = array("status" => false,
                "motivoCritica" => 'Lista de estados 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);