<?php

namespace App\Entities\Credito;

use App\Utils\Builder;

class CreditoClienteBuilder implements Builder {
	protected $id;
	protected $extorno_id;
	protected $credito_id;
	protected $cliente_id;
	protected $criado_por;
	protected $data_criacao;
	protected $hora_criacao;
	protected $valor_total;
	protected $valor_usado;
	protected $valor;
	protected $saldo;
	protected $usado;
	protected $gerar_credito;
	protected $atualizado_por;
	protected $data_atualizacao;
	protected $hora_atualizacao;

	public function build(): CreditoCliente {

		$creditoCliente = new CreditoCliente();

		$creditoCliente->setId( $this->id );
		$creditoCliente->setExtornoId( $this->extorno_id );
		$creditoCliente->setCreditoId( $this->credito_id );
		$creditoCliente->setClienteId( $this->cliente_id );
		$creditoCliente->setCriadoPor( $this->criado_por );
		$creditoCliente->setDataCriacao( $this->data_criacao );
		$creditoCliente->setHoraCriacao( $this->hora_criacao );
		$creditoCliente->setValorTotal( $this->valor_total );
		$creditoCliente->setValorUsado( $this->valor_usado );
		$creditoCliente->setValor( $this->valor );
		$creditoCliente->setSaldo( $this->saldo );
		$creditoCliente->setUsado( $this->usado );
		$creditoCliente->setGerarCredito( $this->gerar_credito );
		$creditoCliente->setAtualizadoPor( $this->atualizado_por );
		$creditoCliente->setDataAtualizacao( $this->data_atualizacao );
		$creditoCliente->setHoraAtualizacao( $this->hora_atualizacao );

		return $creditoCliente;

	}

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

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

	}

	/**
	 *
	 * @param mixed $extorno_id
	 */
	public function setExtornoId($extorno_id) {

		$this->extorno_id = $extorno_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $credito_id
	 */
	public function setCreditoId($credito_id) {

		$this->credito_id = $credito_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $cliente_id
	 */
	public function setClienteId($cliente_id) {

		$this->cliente_id = $cliente_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $criado_por
	 */
	public function setCriadoPor($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 $valor_total
	 */
	public function setValorTotal($valor_total) {

		$this->valor_total = $valor_total;
		return $this;

	}

	/**
	 *
	 * @param mixed $valor_usado
	 */
	public function setValorUsado($valor_usado) {

		$this->valor_usado = $valor_usado;
		return $this;

	}

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

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

	}

	/**
	 *
	 * @param mixed $saldo
	 */
	public function setSaldo($saldo) {

		$this->saldo = $saldo;
		return $this;

	}

	/**
	 *
	 * @param mixed $usado
	 */
	public function setUsado($usado) {

		$this->usado = $usado;
		return $this;

	}

	/**
	 *
	 * @param mixed $gerar_credito
	 */
	public function setGerarCredito($gerar_credito) {

		$this->gerar_credito = $gerar_credito;
		return $this;

	}

	/**
	 *
	 * @param mixed $atualizado_por
	 */
	public function setAtualizadoPor($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;

	}

}

