<?php

namespace App\Entities\ComandaPagamento;

use App\Utils\Builder;

class ComandaPagamentoBuilder implements Builder {
	protected $id;
	protected $comanda_fechamento_id;
	protected $valor;
	protected $forma_pagamento_id;
	protected $dbtcrd;
	protected $maquineta;
	protected $bandeira;
	protected $codauth;
	protected $observacao;
	protected $dinheiro;
	protected $troco;
	protected $chavepix;
	protected $criado_por;
	protected $data_criacao;
	protected $hora_criacao;
	protected $atualizado_por;
	protected $data_atualizacao;
	protected $hora_atualizacao;
	protected $credito_cliente;

	public function build(): ComandaPagamento {

		$comandaPagamento = new ComandaPagamento();

		if (isset( $this->id )) {
			$comandaPagamento->setId( $this->id );
		}
		if (isset( $this->forma_pagamento_id )) {
			$comandaPagamento->setForma_pagamento_id( $this->forma_pagamento_id );
		}
		if (isset( $this->comanda_fechamento_id )) {
			$comandaPagamento->setComanda_fechamento_id( $this->comanda_fechamento_id );
		}
		if (isset( $this->valor )) {
			$comandaPagamento->setValor( $this->valor );
		}
		if (isset( $this->dbtcrd )) {
			$comandaPagamento->setDbtcrd( $this->dbtcrd );
		}
		if (isset( $this->maquineta )) {
			$comandaPagamento->setMaquineta( $this->maquineta );
		}
		if (isset( $this->bandeira )) {
			$comandaPagamento->setBandeira( $this->bandeira );
		}
		if (isset( $this->codauth )) {
			$comandaPagamento->setCodauth( $this->codauth );
		}
		if (isset( $this->observacao )) {
			$comandaPagamento->setObservacao( $this->observacao );
		}
		if (isset( $this->dinheiro )) {
			$comandaPagamento->setDinheiro( $this->dinheiro ?? 0.00);
		}
		if (isset( $this->credito_cliente )) {
			$comandaPagamento->setCreditoCliente( $this->credito_cliente );
		}
		if (isset( $this->troco )) {
			$comandaPagamento->setTroco( $this->troco ?? 0.00);
		}
		if (isset( $this->chavepix )) {
			$comandaPagamento->setChavepix( $this->chavepix );
		}
		if (isset( $this->criado_por )) {
			$comandaPagamento->setCriado_por( $this->criado_por );
		}
		if (isset( $this->data_criacao )) {
			$comandaPagamento->setData_criacao( $this->data_criacao );
		}
		if (isset( $this->hora_criacao )) {
			$comandaPagamento->setHora_criacao( $this->hora_criacao );
		}
		if (isset( $this->atualizado_por )) {
			$comandaPagamento->setAtualizado_por( $this->atualizado_por );
		}
		if (isset( $this->data_atualizacao )) {
			$comandaPagamento->setData_atualizacao( $this->data_atualizacao );
		}
		if (isset( $this->hora_atualizacao )) {
			$comandaPagamento->setHora_atualizacao( $this->hora_atualizacao );
		}

		return $comandaPagamento;

	}

	/**
	 *
	 * @param mixed $id
	 */
	public function setId($id) {

		$this->id = $id;
		return $this;

	}

	/**
	 *
	 * @param mixed $comanda_fechamento_id
	 */
	public function setComanda_fechamento_id($comanda_fechamento_id) {

		$this->comanda_fechamento_id = $comanda_fechamento_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $valor
	 */
	public function setValor($valor) {

		$this->valor = $valor;
		return $this;

	}

	/**
	 *
	 * @param mixed $forma_pagamento_id
	 */
	public function setForma_pagamento_id($forma_pagamento_id) {

		$this->forma_pagamento_id = $forma_pagamento_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $dbtcrd
	 */
	public function setDbtcrd($dbtcrd) {

		$this->dbtcrd = $dbtcrd;
		return $this;

	}

	/**
	 *
	 * @param mixed $maquineta
	 */
	public function setMaquineta($maquineta) {

		$this->maquineta = $maquineta;
		return $this;

	}

	/**
	 *
	 * @param mixed $bandeira
	 */
	public function setBandeira($bandeira) {

		$this->bandeira = $bandeira;
		return $this;

	}

	/**
	 *
	 * @param mixed $codauth
	 */
	public function setCodauth($codauth) {

		$this->codauth = $codauth;
		return $this;

	}

	/**
	 *
	 * @param mixed $observacao
	 */
	public function setObservacao($observacao) {

		$this->observacao = $observacao;
		return $this;

	}

	/**
	 *
	 * @param mixed $dinheiro
	 */
	public function setDinheiro($dinheiro) {

		$this->dinheiro = $dinheiro;
		return $this;

	}

	/**
	 *
	 * @param mixed $credito_cliente
	 */
	public function setCreditoCliente($credito_cliente) {

		$this->credito_cliente = $credito_cliente;
		return $this;

	}

	/**
	 *
	 * @param mixed $troco
	 */
	public function setTroco($troco) {

		$this->troco = $troco;
		return $this;

	}

	/**
	 *
	 * @param mixed $chavepix
	 */
	public function setChavepix($chavepix) {

		$this->chavepix = $chavepix;
		return $this;

	}

	/**
	 *
	 * @param mixed $criado_por
	 */
	public function setCriado_por($criado_por) {

		$this->criado_por = $criado_por;
		return $this;

	}

	/**
	 *
	 * @param mixed $data_criacao
	 */
	public function setData_criacao($data_criacao) {

		$this->data_criacao = $data_criacao;
		return $this;

	}

	/**
	 *
	 * @param mixed $hora_criacao
	 */
	public function setHora_criacao($hora_criacao) {

		$this->hora_criacao = $hora_criacao;
		return $this;

	}

	/**
	 *
	 * @param mixed $atualizado_por
	 */
	public function setAtualizado_por($atualizado_por) {

		$this->atualizado_por = $atualizado_por;
		return $this;

	}

	/**
	 *
	 * @param mixed $data_atualizacao
	 */
	public function setData_atualizacao($data_atualizacao) {

		$this->data_atualizacao = $data_atualizacao;
		return $this;

	}

	/**
	 *
	 * @param mixed $hora_atualizacao
	 */
	public function setHora_atualizacao($hora_atualizacao) {

		$this->hora_atualizacao = $hora_atualizacao;
		return $this;

	}

}

