<?php

namespace App;

use App\Custom\SQLConnection;

class Consumo
{
    private $id_api_key;

    private $user_id;

    private $producto;

    private $cuit;

    private $transaction_id;

    private $ip;

    private $url;

    private $cod_result;

    private $response_txt;

    /**
     * Create a new class instance.
     */
    public function __construct($id_api_key,$cuit=null)
    {
        $this->id_api_key = $id_api_key;
        $this->cuit = $cuit;
        $this->transaction_id = null;
        $this->user_id = null;
        $this->producto = null;
        $this->ip = null;
        $this->url = null;
        $this->response_txt = null;
    }

    public function setUrl($url){
        $this->url = $url;
        return $this;
    }

    public function setIP($ip){
        $this->ip = $ip;
        return $this;
    }

    public function setCodResult($cod_result){
        $this->cod_result = $cod_result;
        return $this;
    }

    public function setRespuesta($resp_txt){
        $this->response_txt = $resp_txt;
        return $this;
    }


    public function registrar_consumo(){
        $result = SQLConnection::backendStoreProcedure('api_key_obtener_info_2022',array(null,null,$this->id_api_key),'selectOne');
        $this->user_id = $result->user_id;
        $this->producto = $result->producto;
        $this->servicios_api();
        $this->Guardar_resultado_api();
    }

    public function Guardar_resultado_api(): void {
        SQLConnection::backendStoreProcedure('resultados_api_', array($this->user_id, $this->producto, null, null, $this->transaction_id, $this->response_txt, $this->cod_result, null, null, null));
    }

    public function servicios_api(): void {
        $result = SQLConnection::backendStoreProcedure('consumir_servicio_API', array($this->user_id, $this->cuit, $this->producto, $this->ip, $this->url),'selectOne');
        $this->transaction_id = $result->transaction_id;
    }
}