<?php

namespace App\ViewModels\ProdutoServico\ProdutoRegistrationViewModel;

use App\Utils\Builder;

class ProdutoRegistrationViewModelBuilder implements Builder {
	// protected $id;
	protected $nome;
	protected $descricao;
	protected $id_unidade;
	protected $id_tipo;
	protected $id_status;
	protected $criado_por;
	protected $data_criacao;
	protected $hora_criacao;
	// protected $alterado_por;
	protected $data_alteracao;
	protected $hora_alteracao;
	protected $valor;

	public function build(): ProdutoRegistrationViewModel {

		$obj = new ProdutoRegistrationViewModel();

		$obj->setNome( $this->nome );
		$obj->setDescricao( $this->descricao );
		$obj->setIdUnidade( $this->id_unidade );
		$obj->setIdTipo( $this->id_tipo );
		$obj->setIdStatus( $this->id_status );
		$obj->setCriadoPor( $this->criado_por );
		$obj->setDataCriacao( $this->data_criacao );
		$obj->setHoraCriacao( $this->hora_criacao );
		$obj->setDataAlteracao( $this->data_alteracao );
		$obj->setHoraAlteracao( $this->hora_alteracao );
		$obj->setValor( $this->valor );

		return $obj;

	}

	/**
	 *
	 * @param mixed $nome
	 */
	public function setNome($nome): ProdutoRegistrationViewModelBuilder {

		$this->nome = $nome;
		return $this;

	}

	/**
	 *
	 * @param mixed $descricao
	 */
	public function setDescricao($descricao): ProdutoRegistrationViewModelBuilder {

		$this->descricao = $descricao;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_unidade
	 */
	public function setIdUnidade($id_unidade): ProdutoRegistrationViewModelBuilder {

		$this->id_unidade = $id_unidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_tipo
	 */
	public function setIdTipo($id_tipo): ProdutoRegistrationViewModelBuilder {

		$this->id_tipo = $id_tipo;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_status
	 */
	public function setIdStatus($id_status): ProdutoRegistrationViewModelBuilder {

		$this->id_status = $id_status;
		return $this;

	}

	/**
	 *
	 * @param mixed $criado_por
	 */
	public function setCriadoPor($criado_por): ProdutoRegistrationViewModelBuilder {

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

	}

	/**
	 *
	 * @param mixed $data_criacao
	 */
	public function setDataCriacao($data_criacao): ProdutoRegistrationViewModelBuilder {

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

	}

	/**
	 *
	 * @param mixed $hora_criacao
	 */
	public function setHoraCriacao($hora_criacao): ProdutoRegistrationViewModelBuilder {

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

	}

	/**
	 *
	 * @param mixed $data_alteracao
	 */
	public function setDataAlteracao($data_alteracao): ProdutoRegistrationViewModelBuilder {

		$this->data_alteracao = $data_alteracao;
		return $this;

	}

	/**
	 *
	 * @param mixed $hora_alteracao
	 */
	public function setHoraAlteracao($hora_alteracao): ProdutoRegistrationViewModelBuilder {

		$this->hora_alteracao = $hora_alteracao;
		return $this;

	}

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

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

	}

}

