<?php

namespace App\ViewModels\Unidade\UnidadeDetailsViewModel;

use App\Utils\Builder;

class UnidadeDetailsViewModelBuilder implements Builder {
	protected $pessoa_juridica_id;
	protected $nome_fantasia;
	protected $razao_social;
	protected $cnpj;
	protected $pessoa_id;
	protected $telefone_1;
	protected $telefone_2;
	protected $observacao;
	protected $endereco_id;
	protected $cep;
	protected $numero;
	protected $complemento;
	protected $referencias;
	protected $cep_id;
	protected $estado;
	protected $cidade;
	protected $bairro;
	protected $logradouro;
	protected $descricao;
	protected $telemedicina;
	protected $unidade_id;
	protected $ativo;

	/**
	 *
	 * @param mixed $descricao
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setDescricao($descricao) {

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

	}

	/**
	 *
	 * @param mixed $telemedicina
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setTelemedicina($telemedicina) {

		$this->telemedicina = $telemedicina;
		return $this;

	}

	/**
	 *
	 * @param mixed $pessoa_juridica_id
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setPessoaJuridicaId($pessoa_juridica_id) {

		$this->pessoa_juridica_id = $pessoa_juridica_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $nome_fantasia
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setNomeFantasia($nome_fantasia) {

		$this->nome_fantasia = $nome_fantasia;
		return $this;

	}

	/**
	 *
	 * @param mixed $razao_social
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setRazaoSocial($razao_social) {

		$this->razao_social = $razao_social;
		return $this;

	}

	/**
	 *
	 * @param mixed $cnpj
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setCnpj($cnpj) {

		$this->cnpj = $cnpj;
		return $this;

	}

	/**
	 *
	 * @param mixed $pessoa_id
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setPessoaId($pessoa_id) {

		$this->pessoa_id = $pessoa_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $telefone_1
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setTelefone1($telefone_1) {

		$this->telefone_1 = $telefone_1;
		return $this;

	}

	/**
	 *
	 * @param mixed $telefone_2
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setTelefone2($telefone_2) {

		$this->telefone_2 = $telefone_2;
		return $this;

	}

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

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

	}

	/**
	 *
	 * @param mixed $endereco_id
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setEnderecoId($endereco_id) {

		$this->endereco_id = $endereco_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $cep
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setCep($cep) {

		$this->cep = $cep;
		return $this;

	}

	/**
	 *
	 * @param mixed $numero
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setNumero($numero) {

		$this->numero = $numero;
		return $this;

	}

	/**
	 *
	 * @param mixed $complemento
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setComplemento($complemento) {

		$this->complemento = $complemento;
		return $this;

	}

	/**
	 *
	 * @param mixed $referencias
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setReferencias($referencias) {

		$this->referencias = $referencias;
		return $this;

	}

	/**
	 *
	 * @param mixed $estado
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setEstado($estado) {

		$this->estado = $estado;
		return $this;

	}

	/**
	 *
	 * @param mixed $cidade
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setCidade($cidade) {

		$this->cidade = $cidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $bairro
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setBairro($bairro) {

		$this->bairro = $bairro;
		return $this;

	}

	/**
	 *
	 * @param mixed $logradouro
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setLogradouro($logradouro) {

		$this->logradouro = $logradouro;
		return $this;

	}

	/**
	 *
	 * @param mixed $cep_id
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setCepId($cep_id) {

		$this->cep_id = $cep_id;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getUnidadeId() {

		return $this->unidade_id;

	}

	/**
	 *
	 * @param mixed $unidade_id
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setUnidadeId($unidade_id) {

		$this->unidade_id = $unidade_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $unidade_id
	 * @return UnidadeDetailsViewModelBuilder
	 */
	public function setAtivo($ativo) {

		$this->ativo = $ativo;
		return $this;

	}

	public function build(): UnidadeDetailsViewModel {

		$assistente_details_vm = new UnidadeDetailsViewModel();
		$assistente_details_vm->setPessoaJuridicaId( $this->pessoa_juridica_id );
		$assistente_details_vm->setNomeFantasia( $this->nome_fantasia );
		$assistente_details_vm->setRazaoSocial( $this->razao_social );
		$assistente_details_vm->setCnpj( $this->cnpj );
		$assistente_details_vm->setPessoaId( $this->pessoa_id );
		$assistente_details_vm->setTelefone1( $this->telefone_1 );
		$assistente_details_vm->setTelefone2( $this->telefone_2 );
		$assistente_details_vm->setObservacao( $this->observacao );
		$assistente_details_vm->setEnderecoId( $this->endereco_id );
		$assistente_details_vm->setCep( $this->cep );
		$assistente_details_vm->setNumero( $this->numero );
		$assistente_details_vm->setComplemento( $this->complemento );
		$assistente_details_vm->setReferencias( $this->referencias );
		$assistente_details_vm->setCepId( $this->cep_id );
		$assistente_details_vm->setEstado( $this->estado );
		$assistente_details_vm->setCidade( $this->cidade );
		$assistente_details_vm->setBairro( $this->bairro );
		$assistente_details_vm->setLogradouro( $this->logradouro );
		$assistente_details_vm->setTelemedicina( $this->telemedicina );
		$assistente_details_vm->setDescricao( $this->descricao );
		$assistente_details_vm->setUnidadeId( $this->unidade_id ?? 0);
		$assistente_details_vm->setAtivo( $this->ativo ?? 0);
		return $assistente_details_vm;

	}

}
