<?php

namespace App\ViewModels\Assistente\AssistenteDetailsViewModel;

use App\Utils\Builder;

class AssistenteDetailsViewModelBuilder implements Builder {
	protected $id;
	protected $cpf;
	protected $rg;
	protected $nome;
	protected $genero;
	protected $data_nascimento;
	protected $telefone_1;
	protected $telefone_2;
	protected $telefone_3;
	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 $medicos;
	protected $id_perfil;
	protected $id_usuario;
	protected $perfil_descricao;

	public function build(): AssistenteDetailsViewModel {

		$assistente_details_vm = new AssistenteDetailsViewModel();

		$assistente_details_vm->setid( $this->id );
		$assistente_details_vm->setcpf( $this->cpf );
		$assistente_details_vm->setrg( $this->rg );
		$assistente_details_vm->setnome( $this->nome );
		$assistente_details_vm->setgenero( $this->genero );
		$assistente_details_vm->setdatanascimento( $this->data_nascimento );
		$assistente_details_vm->settelefone1( $this->telefone_1 );
		$assistente_details_vm->settelefone2( $this->telefone_2 );
		$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->setestado( $this->estado );
		$assistente_details_vm->setcidade( $this->cidade );
		$assistente_details_vm->setbairro( $this->bairro );
		$assistente_details_vm->setlogradouro( $this->logradouro );
		$assistente_details_vm->setemail( $this->email );
		$assistente_details_vm->setfoto( $this->foto );
		$assistente_details_vm->setprofissao( $this->profissao );
		$assistente_details_vm->setestadocivil( $this->estado_civil );
		$assistente_details_vm->setAtivo( $this->ativo );
		$assistente_details_vm->setAtivoDescricao( $this->ativo_descricao );
		$assistente_details_vm->setTipo( $this->tipo );
		$assistente_details_vm->setMedicos( $this->medicos );
		$assistente_details_vm->setPerfilId( $this->id_perfil );
		$assistente_details_vm->setIdUsuario( $this->id_usuario );
		$assistente_details_vm->setPerfilDescricao( $this->perfil_descricao );

		return $assistente_details_vm;

	}

	/**
	 *
	 * @param mixed $medicos
	 * @return AssistenteDetailsViewModelBuilder
	 */
	public function setMedicos($medicos) {

		$this->medicos = $medicos;
		return $this;

	}

	public function setId(int $id): AssistenteDetailsViewModelBuilder {

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

	}

	public function setCpf(string $cpf): AssistenteDetailsViewModelBuilder {

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

	}

	public function setRg(string $rg): AssistenteDetailsViewModelBuilder {

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

	}

	public function setNome(string $nome): AssistenteDetailsViewModelBuilder {

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

	}

	public function setGenero(string $genero): AssistenteDetailsViewModelBuilder {

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

	}

	public function setDataNascimento(string $data_nascimento): AssistenteDetailsViewModelBuilder {

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

	}

	public function setTelefone1(string $telefone_1): AssistenteDetailsViewModelBuilder {

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

	}

	public function setTelefone2(string $telefone_2): AssistenteDetailsViewModelBuilder {

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

	}

	public function setTelefone3(string $telefone_3): AssistenteDetailsViewModelBuilder {

		$this->telefone_3 = $telefone_3;
		return $this;

	}

	public function setCep(string $cep): AssistenteDetailsViewModelBuilder {

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

	}

	public function setNumero(string $numero): AssistenteDetailsViewModelBuilder {

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

	}

	public function setComplemento(string $complemento): AssistenteDetailsViewModelBuilder {

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

	}

	public function setReferencias(string $referencias): AssistenteDetailsViewModelBuilder {

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

	}

	public function setEstado(string $estado): AssistenteDetailsViewModelBuilder {

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

	}

	public function setCidade(string $cidade): AssistenteDetailsViewModelBuilder {

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

	}

	public function setBairro(string $bairro): AssistenteDetailsViewModelBuilder {

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

	}

	public function setLogradouro(string $logradouro): AssistenteDetailsViewModelBuilder {

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

	}

	public function setEmail($email): AssistenteDetailsViewModelBuilder {

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

	}

	public function setFoto($foto): AssistenteDetailsViewModelBuilder {

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

	}

	public function setProfissao(string $profissao): AssistenteDetailsViewModelBuilder {

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

	}

	public function setEstadoCivil(string $estado_civil): AssistenteDetailsViewModelBuilder {

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

	}

	public function setAtivo($ativo): AssistenteDetailsViewModelBuilder {

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

	}

	public function setAtivoDescricao($ativoDescricao): AssistenteDetailsViewModelBuilder {

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

	}

	public function setTipo($tipo) {

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

	}

	/**
	 *
	 * @param mixed $id_perfil
	 * @return AssistenteDetailsViewModelBuilder
	 */
	public function setPerfilId($id_perfil) {

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

	}

	/**
	 *
	 * @param mixed $perfil_descricao
	 * @return AssistenteDetailsViewModelBuilder
	 */
	public function setPerfilDescricao($perfil_descricao) {

		$this->perfil_descricao = $perfil_descricao;
		return $this;

	}

	public function setIdUsuario($id_usuario) {

		$this->id_usuario = $id_usuario;
		return $this;

	}

}