<?php


namespace App\ViewModels\Paciente\PacienteDetailsViewModel;


use App\Utils\Builder;
use App\ViewModels\Paciente\PacienteRegistrationViewModel\PacienteRegistrationViewModel;

class PacienteDetailsViewModelBuilder implements Builder
{
    private $id;
    private $id_cliente;
    private $cpf;
    private $rg;
    private $nome;
    private $genero;
    private $data_nascimento;
    private $telefone_1;
    private $telefone_2;
    private $telefone_3;
    private $cep;
    private $numero;
    private $complemento;
    private $referencias;
    private $estado;
    private $cidade;
    private $bairro;
    private $logradouro;
    private $email;
    private $foto;
    private $indicado_por;
    private $profissao;
    private $estado_civil;
    private $convenio;
    private $observacao;
    private $tipo;
    private $peso;
    private $altura;
    private $pets;

    /**
     * @param mixed $pets
     * @return PacienteDetailsViewModelBuilder
     */
    public function setPets($pets)
    {
        $this->pets = $pets;
        return $this;
    }

    public function setId(int $id): PacienteDetailsViewModelBuilder
    {
        $this->id = $id;
        return $this;
    }

    public function setCpf(string $cpf): PacienteDetailsViewModelBuilder
    {
        $this->cpf = $cpf;
        return $this;
    }

    public function setRg(string $rg): PacienteDetailsViewModelBuilder
    {
        $this->rg = $rg;
        return $this;
    }

    public function setNome(string $nome): PacienteDetailsViewModelBuilder
    {
        $this->nome = $nome;
        return $this;
    }

    public function setGenero(string $genero): PacienteDetailsViewModelBuilder
    {
        $this->genero = $genero;
        return $this;
    }

    public function setDataNascimento(string $data_nascimento): PacienteDetailsViewModelBuilder
    {
        $this->data_nascimento = $data_nascimento;
        return $this;
    }

    public function setTelefone1(string $telefone_1): PacienteDetailsViewModelBuilder
    {
        $this->telefone_1 = $telefone_1;
        return $this;
    }

    public function setTelefone2(string $telefone_2): PacienteDetailsViewModelBuilder
    {
        $this->telefone_2 = $telefone_2;
        return $this;
    }

    public function setTelefone3(string $telefone_3): PacienteDetailsViewModelBuilder
    {
        $this->telefone_3 = $telefone_3;
        return $this;
    }

    public function setCep(string $cep): PacienteDetailsViewModelBuilder
    {
        $this->cep = $cep;
        return $this;
    }

    public function setNumero(string $numero): PacienteDetailsViewModelBuilder
    {
        $this->numero = $numero;
        return $this;
    }

    public function setComplemento(string $complemento): PacienteDetailsViewModelBuilder
    {
        $this->complemento = $complemento;
        return $this;
    }

    public function setReferencias(string $referencias): PacienteDetailsViewModelBuilder
    {
        $this->referencias = $referencias;
        return $this;
    }

    public function setEstado(string $estado): PacienteDetailsViewModelBuilder
    {
        $this->estado = $estado;
        return $this;
    }

    public function setCidade(string $cidade): PacienteDetailsViewModelBuilder
    {
        $this->cidade = $cidade;
        return $this;
    }

    public function setBairro(string $bairro): PacienteDetailsViewModelBuilder
    {
        $this->bairro = $bairro;
        return $this;
    }

    public function setLogradouro(string $logradouro): PacienteDetailsViewModelBuilder
    {
        $this->logradouro = $logradouro;
        return $this;
    }

    public function setEmail($email): PacienteDetailsViewModelBuilder
    {
        $this->email = $email;
        return $this;
    }

    public function setFoto($foto): PacienteDetailsViewModelBuilder
    {
        $this->foto = $foto;
        return $this;
    }

    public function setIndicadoPor($indicado_por): PacienteDetailsViewModelBuilder
    {
        $this->indicado_por = $indicado_por;
        return $this;
    }

    public function setProfissao(string $profissao) : PacienteDetailsViewModelBuilder
    {
        $this->profissao = $profissao;
        return $this;
    }

    public function setEstadoCivil(string $estado_civil) : PacienteDetailsViewModelBuilder
    {
        $this->estado_civil = $estado_civil;
        return $this;
    }

    public function setIdCliente(?int $id_cliente) : PacienteDetailsViewModelBuilder
    {
        $this->id_cliente = $id_cliente ?? 0;
        return $this;
    }

    public function setConvenio($convenio): PacienteDetailsViewModelBuilder
    {
        $this->convenio = $convenio;
        return $this;
    }

    public function setObservacao($observacao)
    {
        $this->observacao = $observacao;
        return $this;
    }

    public function setTipo($tipo)
    {
        $this->tipo = $tipo;
        return $this;
    }

    public function setAltura($altura)
    {
        $this->altura = $altura;
        return $this;
    }

    public function setPeso($peso)
    {
        $this->peso = $peso;
        return $this;
    }



    public function build() : PacienteDetailsViewModel
    {
        $paciente_details_vm = new PacienteDetailsViewModel();
        $paciente_details_vm->setid($this->id);
        $paciente_details_vm->setcpf($this->cpf);
        $paciente_details_vm->setrg($this->rg);
        $paciente_details_vm->setnome($this->nome);
        $paciente_details_vm->setgenero($this->genero);
        $paciente_details_vm->setdatanascimento($this->data_nascimento);
        $paciente_details_vm->settelefone1($this->telefone_1);
        $paciente_details_vm->settelefone2($this->telefone_2);
        $paciente_details_vm->setTelefone3($this->telefone_3);
        $paciente_details_vm->setcep($this->cep);
        $paciente_details_vm->setnumero($this->numero);
        $paciente_details_vm->setcomplemento($this->complemento);
        $paciente_details_vm->setreferencias($this->referencias);
        $paciente_details_vm->setestado($this->estado);
        $paciente_details_vm->setcidade($this->cidade);
        $paciente_details_vm->setbairro($this->bairro);
        $paciente_details_vm->setlogradouro($this->logradouro);
        $paciente_details_vm->setemail($this->email);
        $paciente_details_vm->setfoto($this->foto);
        $paciente_details_vm->setindicadopor($this->indicado_por);
        $paciente_details_vm->setProfissao($this->profissao);
        $paciente_details_vm->setEstadoCivil($this->estado_civil);
        $paciente_details_vm->setIdCliente($this->id_cliente);
        $paciente_details_vm->setConvenio($this->convenio);
        $paciente_details_vm->setObservacao($this->observacao);
        $paciente_details_vm->setTipo($this->tipo);
        $paciente_details_vm->setAltura($this->altura);
        $paciente_details_vm->setPeso($this->peso);
        $paciente_details_vm->setPets($this->pets);

        return $paciente_details_vm;
    }


}
