<?php
include_once "conexao.php";

error_reporting(E_ALL ^ E_NOTICE);


class LinkPosIDClass
{
    private $con;
    private $pdo;

    private $id;
    private $parceiro;
    private $idParceiro;
    private $data;
    private $dataPagamento;
    private $termo;
    private $servico;
    private $codigoAgencia;

    public function __construct()
    {
        $this->con = new Conexao();
        $this->pdo = $this->con->getConexao();
    }

    public function getPorId()
    {
        $sql = "select * from link_pos_id
                where id =:id";
        $resultado = $this->pdo->prepare($sql);
        $resultado->bindParam(":id", $this->getId(), PDO::PARAM_INT);
        $resultado->execute();

        return $resultado;
    }

    public function getPorIdParceiro()
    {
        $sql = "select * from link_pos_id
                where id_parceiro =:id";
        $resultado = $this->pdo->prepare($sql);
        $resultado->bindParam(":id", $this->getIdParceiro(), PDO::PARAM_STR);
        $resultado->execute();

        return $resultado;
    }

    public function inserir()
    {
        $sql = "insert into link_pos_id (parceiro, id_parceiro)
                values(:parceiro, :id_parceiro) ";
        $resultado = $this->pdo->prepare($sql);
        $resultado->bindParam(":parceiro", $this->getParceiro(), PDO::PARAM_STR);
        $resultado->bindParam(":id_parceiro", $this->getIdParceiro(), PDO::PARAM_STR);

        $resultado->execute();

        if ($resultado){
            $this->setId($this->pdo->lastInsertId());
        }else{
            $this->setId(0);
        }

        return $resultado;
    }

    public function gravaPagamentoPorId()
    {
        $sql = "update link_pos_id set data_pagamento = current_timestamp() 
                where id =:id";

        $resultado = $this->pdo->prepare($sql);
        $resultado->bindParam(":id", $this->getId(), PDO::PARAM_INT);
        $resultado->execute();

        return $resultado;
    }

    public function gravaDadosExtrasPorId()
    {
        $sql = "update link_pos_id set termo =:termo, servico =:servico, codigo_agencia =:codigo_agencia
                where id =:id";

        $resultado = $this->pdo->prepare($sql);
        $resultado->bindParam(":id", $this->getId(), PDO::PARAM_INT);
        $resultado->bindParam(":termo", $this->getTermo(), PDO::PARAM_STR);
        $resultado->bindParam(":servico", $this->getServico(), PDO::PARAM_STR);
        $resultado->bindParam(":codigo_agencia", $this->getCodigoAgencia(), PDO::PARAM_STR);
        $resultado->execute();

        return $resultado;
    }

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param mixed $id
     */
    public function setId($id): void
    {
        $this->id = $id;
    }

    /**
     * @return mixed
     */
    public function getParceiro()
    {
        return $this->parceiro;
    }

    /**
     * @param mixed $parceiro
     */
    public function setParceiro($parceiro): void
    {
        $this->parceiro = $parceiro;
    }

    /**
     * @return mixed
     */
    public function getData()
    {
        return $this->data;
    }

    /**
     * @param mixed $data
     */
    public function setData($data): void
    {
        $this->data = $data;
    }

    /**
     * @return mixed
     */
    public function getIdParceiro()
    {
        return $this->idParceiro;
    }

    /**
     * @param mixed $idParceiro
     */
    public function setIdParceiro($idParceiro): void
    {
        $this->idParceiro = $idParceiro;
    }

    /**
     * @return mixed
     */
    public function getDataPagamento()
    {
        return $this->dataPagamento;
    }

    /**
     * @param mixed $dataPagamento
     */
    public function setDataPagamento($dataPagamento): void
    {
        $this->dataPagamento = $dataPagamento;
    }

    /**
     * @return mixed
     */
    public function getTermo()
    {
        return $this->termo;
    }

    /**
     * @param mixed $termo
     */
    public function setTermo($termo): void
    {
        $this->termo = $termo;
    }

    /**
     * @return mixed
     */
    public function getServico()
    {
        return $this->servico;
    }

    /**
     * @param mixed $servico
     */
    public function setServico($servico): void
    {
        $this->servico = $servico;
    }

    /**
     * @return mixed
     */
    public function getCodigoAgencia()
    {
        return $this->codigoAgencia;
    }

    /**
     * @param mixed $codigoAgencia
     */
    public function setCodigoAgencia($codigoAgencia): void
    {
        $this->codigoAgencia = $codigoAgencia;
    }


}