<?php

namespace App\ViewModels\Medico\MedicoDetailsViewModel;

use App\Utils\Builder;

class MedicoDetailsViewModelBuilder 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 $clinica;
	protected $documento;

	public function build(): MedicoDetailsViewModel {

		$medico_details_vm = new MedicoDetailsViewModel();

		$medico_details_vm->setId( $this->id );
		$medico_details_vm->setCpf( $this->cpf );
		$medico_details_vm->setRg( $this->rg );
		$medico_details_vm->setNome( $this->nome );
		$medico_details_vm->setGenero( $this->genero );
		$medico_details_vm->setDataNascimento( $this->data_nascimento );
		$medico_details_vm->setTelefone1( $this->telefone_1 );
		$medico_details_vm->setTelefone2( $this->telefone_2 );
		$medico_details_vm->setCep( $this->cep );
		$medico_details_vm->setNumero( $this->numero );
		$medico_details_vm->setComplemento( $this->complemento );
		$medico_details_vm->setReferencias( $this->referencias );
		$medico_details_vm->setEstado( $this->estado );
		$medico_details_vm->setCidade( $this->cidade );
		$medico_details_vm->setBairro( $this->bairro );
		$medico_details_vm->setLogradouro( $this->logradouro );
		$medico_details_vm->setEmail( $this->email );
		$medico_details_vm->setFoto( $this->foto );
		$medico_details_vm->setAtivo( $this->ativo );
		$medico_details_vm->setAtivoDescricao( $this->ativo_descricao );
		$medico_details_vm->setProfissao( $this->profissao );
		$medico_details_vm->setEstadoCivil( $this->estado_civil );
		$medico_details_vm->setTipo( $this->tipo );
		$medico_details_vm->setClinica( $this->clinica );
		$medico_details_vm->setDocumento( $this->documento );

		return $medico_details_vm;

	}

	public function setClinica($clinica) {

		$this->clinica = $clinica;
		return $this;

	}

	public function setId(int $id): MedicoDetailsViewModelBuilder {

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

	}

	public function setCpf(string $cpf): MedicoDetailsViewModelBuilder {

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

	}

	public function setRg(string $rg): MedicoDetailsViewModelBuilder {

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

	}

	public function setNome(string $nome): MedicoDetailsViewModelBuilder {

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

	}

	public function setGenero(string $genero): MedicoDetailsViewModelBuilder {

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

	}

	public function setDataNascimento(string $data_nascimento): MedicoDetailsViewModelBuilder {

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

	}

	public function setTelefone1(string $telefone_1): MedicoDetailsViewModelBuilder {

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

	}

	public function setTelefone2(string $telefone_2): MedicoDetailsViewModelBuilder {

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

	}

	public function setCep(string $cep): MedicoDetailsViewModelBuilder {

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

	}

	public function setNumero(string $numero): MedicoDetailsViewModelBuilder {

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

	}

	public function setComplemento(string $complemento): MedicoDetailsViewModelBuilder {

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

	}

	public function setReferencias(string $referencias): MedicoDetailsViewModelBuilder {

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

	}

	public function setEstado(string $estado): MedicoDetailsViewModelBuilder {

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

	}

	public function setCidade(string $cidade): MedicoDetailsViewModelBuilder {

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

	}

	public function setBairro(string $bairro): MedicoDetailsViewModelBuilder {

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

	}

	public function setLogradouro(string $logradouro): MedicoDetailsViewModelBuilder {

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

	}

	public function setEmail($email): MedicoDetailsViewModelBuilder {

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

	}

	public function setFoto($foto): MedicoDetailsViewModelBuilder {

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

	}

	public function setProfissao(string $profissao): MedicoDetailsViewModelBuilder {

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

	}

	public function setEstadoCivil(string $estado_civil): MedicoDetailsViewModelBuilder {

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

	}

	public function setAtivo($ativo): MedicoDetailsViewModelBuilder {

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

	}
	
	public function setAtivoDescricao($ativoDescricao) {
		
		$this->ativo_descricao = $ativoDescricao;
		return $this;
	}

	public function setTipo($tipo): MedicoDetailsViewModelBuilder {

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

	}

	public function setDocumento($documento): MedicoDetailsViewModelBuilder {

		$this->documento = $documento;
		return $this;

	}

}