<?php

namespace App\ViewModels\Administrativo\AdministrativoDetailsViewModel;

use App\Utils\Builder;

class AdministrativoDetailsViewModelBuilder implements Builder {
	protected $id;
	protected $cpf;
	protected $rg;
	protected $nome;
	protected $genero;
	protected $data_nascimento;
	protected $telefone_1;
	protected $telefone_2;
	protected $cep;
	protected $numero;
	protected $complemento;
	protected $referencias;
	protected $estado;
	protected $cidade;
	protected $bairro;
	protected $logradouro;
	protected $email;
	protected $foto;
	protected $profissao;
	protected $estado_civil;
	protected $ativo;
	protected $ativo_descricao;
	protected $tipo;
	protected $id_clinica;
	protected $nome_fantasia;
	protected $id_perfil;
	protected $descricao_perfil;

	/**
	 *
	 * @param mixed $id_clinica
	 * @return AdministrativoDetailsViewModelBuilder
	 */
	public function setIdClinica($id_clinica) {

		$this->id_clinica = $id_clinica;
		return $this;

	}

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

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

	}

	/**
	 *
	 * @param mixed $id_perfil
	 * @return AdministrativoDetailsViewModelBuilder
	 */
	public function setIdPerfil($id_perfil) {

		$this->id_perfil = $id_perfil;
		return $this;

	}

	/**
	 *
	 * @param mixed $descricao_perfil
	 * @return AdministrativoDetailsViewModelBuilder
	 */
	public function setDescricaoPerfil($descricao_perfil) {

		$this->descricao_perfil = $descricao_perfil;
		return $this;

	}

	public function setId(int $id): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setCpf(string $cpf): AdministrativoDetailsViewModelBuilder {

		$this->cpf = $cpf;
		return $this;

	}

	public function setRg(string $rg): AdministrativoDetailsViewModelBuilder {

		$this->rg = $rg;
		return $this;

	}

	public function setNome(string $nome): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setGenero(string $genero): AdministrativoDetailsViewModelBuilder {

		$this->genero = $genero;
		return $this;

	}

	public function setDataNascimento(string $data_nascimento): AdministrativoDetailsViewModelBuilder {

		$this->data_nascimento = $data_nascimento;
		return $this;

	}

	public function setTelefone1(string $telefone_1): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setTelefone2(string $telefone_2): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setCep(string $cep): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setNumero(string $numero): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setComplemento(string $complemento): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setReferencias(string $referencias): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setEstado(string $estado): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setCidade(string $cidade): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setBairro(string $bairro): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setLogradouro(string $logradouro): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setEmail($email): AdministrativoDetailsViewModelBuilder {

		$this->email = $email;
		return $this;

	}

	public function setFoto($foto): AdministrativoDetailsViewModelBuilder {

		$this->foto = $foto;
		return $this;

	}

	public function setProfissao(string $profissao): AdministrativoDetailsViewModelBuilder {

		$this->profissao = $profissao;
		return $this;

	}

	public function setEstadoCivil(string $estado_civil): AdministrativoDetailsViewModelBuilder {

		$this->estado_civil = $estado_civil;
		return $this;

	}

	public function setAtivo($ativo): AdministrativoDetailsViewModelBuilder {

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

	}

	public function setAtivoDescricao($ativoDescricao): AdministrativoDetailsViewModelBuilder {

		$this->ativo_descricao = $ativoDescricao;
		return $this;

	}

	public function setTipo($tipo) {

		$this->tipo = $tipo;
		return $this;

	}

	public function build(): AdministrativoDetailsViewModel {

		$adm_details_vm = new AdministrativoDetailsViewModel();

		$adm_details_vm->setid( $this->id );
		$adm_details_vm->setcpf( $this->cpf );
		$adm_details_vm->setrg( $this->rg );
		$adm_details_vm->setnome( $this->nome );
		$adm_details_vm->setgenero( $this->genero );
		$adm_details_vm->setdatanascimento( $this->data_nascimento );
		$adm_details_vm->settelefone1( $this->telefone_1 );
		$adm_details_vm->settelefone2( $this->telefone_2 );
		$adm_details_vm->setcep( $this->cep );
		$adm_details_vm->setnumero( $this->numero );
		$adm_details_vm->setcomplemento( $this->complemento );
		$adm_details_vm->setreferencias( $this->referencias );
		$adm_details_vm->setestado( $this->estado );
		$adm_details_vm->setcidade( $this->cidade );
		$adm_details_vm->setbairro( $this->bairro );
		$adm_details_vm->setlogradouro( $this->logradouro );
		$adm_details_vm->setemail( $this->email );
		$adm_details_vm->setfoto( $this->foto );
		$adm_details_vm->setprofissao( $this->profissao );
		$adm_details_vm->setestadocivil( $this->estado_civil );
		$adm_details_vm->setTipo( $this->tipo );
		$adm_details_vm->setIdClinica( $this->id_clinica );
		$adm_details_vm->setNomeFantasia( $this->nome_fantasia );
		$adm_details_vm->setDescricaoPerfil( $this->descricao_perfil );
		$adm_details_vm->setIdPerfil( $this->id_perfil );
		$adm_details_vm->setAtivo( $this->ativo );
		$adm_details_vm->setAtivoDescricao( $this->ativo_descricao );

		return $adm_details_vm;

	}

}