<?php

namespace App\ViewModels\Pagamento\PagamentoComandaFormaPagamentoRegistrationViewModel;

use App\Utils\Builder;

class PagamentoComandaFormaPagamentoViewModelBuilder implements Builder {
	protected $id;
	protected $forma_id;
	protected $valor;
	protected $card;
	protected $boleto;
	protected $pix;
	protected $dinheiro;
	protected $credito_cliente = array();
	protected $observacao;
	protected $criado_por;
	protected $data_criacao;
	protected $hora_criacao;
	protected $atualizado_por;
	protected $data_atualizacao;
	protected $hora_atualizacao;

	public function build(): PagamentoComandaFormaPagamentoViewModel {

		$formaPagamento_vm = new PagamentoComandaFormaPagamentoViewModel();

		$formaPagamento_vm->setId( $this->id );
		$formaPagamento_vm->setFormaId( $this->forma_id );
		$formaPagamento_vm->setValor( $this->valor );
		$formaPagamento_vm->setCard( $this->card );
		$formaPagamento_vm->setCreditoCliente( $this->credito_cliente );
		$formaPagamento_vm->setBoleto( $this->boleto );
		$formaPagamento_vm->setPix( $this->pix );
		$formaPagamento_vm->setDinheiro( $this->dinheiro );
		$formaPagamento_vm->setObservacao( $this->observacao );
		$formaPagamento_vm->setCriado_por( $this->criado_por );
		$formaPagamento_vm->setDataCriacao( $this->data_criacao );
		$formaPagamento_vm->setHoraCriacao( $this->hora_criacao );
		$formaPagamento_vm->setAtualizado_por( $this->atualizado_por );
		$formaPagamento_vm->setDataAtualizacao( $this->data_atualizacao );
		$formaPagamento_vm->setHoraAtualizacao( $this->hora_atualizacao );

		return $formaPagamento_vm;

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

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


	/**
	 * @param mixed $forma_id
	 */
	public function setFormaId($forma_id) {

		$this->forma_id = $forma_id;
		return $this;
	}


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

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


	/**
	 * @param mixed $card
	 */
	public function setCard($card) {

		$this->card = $card;
		return $this;
	}


	/**
	 * @param mixed $boleto
	 */
	public function setBoleto($boleto) {

		$this->boleto = $boleto;
		return $this;
	}


	/**
	 * @param mixed $pix
	 */
	public function setPix($pix) {

		$this->pix = $pix;
		return $this;
	}


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

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

	/**
	 * @param mixed $credito_cliente
	 */
	public function setCreditoCliente($creditoCliente) {
		
		$this->credito_cliente = $creditoCliente;
		return $this;
	}
	

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

		$this->observacao = $observacao;
		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 setDataCriacao($data_criacao) {

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


	/**
	 * @param mixed $hora_criacao
	 */
	public function setHoraCriacao($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 setDataAtualizacao($data_atualizacao) {

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


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

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


	

}

