<?php


namespace App\ViewModels\Pet\PetDetailsViewModel;


use App\Utils\Builder;

class PetDetailsViewModelBuilder implements Builder
{
    protected $id_pet;
    protected $data_nascimento;
    protected $cor;
    protected $sexo;
    protected $castrado;
    protected $numero_chip;
    protected $rga_pedigree;
    protected $doado;
    protected $id_raca;
    protected $nome_raca;
    protected $id_especie;
    protected $nome_especie;
    protected $id_cliente;
    protected $nome;
    protected $cpf;
    protected $nome_pet;
    protected $porte;
    protected $observacoes;
    protected $id_paciente;
    protected $peso;

    /**
     * @param mixed $nome_pet
     * @return PetDetailsViewModelBuilder
     */
    public function setNomePet($nome_pet)
    {
        $this->nome_pet = $nome_pet;
        return $this;
    }

    /**
     * @param mixed $porte
     * @return PetDetailsViewModelBuilder
     */
    public function setPorte($porte)
    {
        $this->porte = $porte;
        return $this;
    }
    
    public function setPeso($peso)
    {
        $this->peso = $peso;
        return $this;
    }

    /**
     * @param mixed $observacoes
     * @return PetDetailsViewModelBuilder
     */
    public function setObservacoes($observacoes)
    {
        $this->observacoes = $observacoes;
        return $this;
    }
    /**
     * @param mixed $id_pet
     * @return PetDetailsViewModelBuilder
     */
    public function setIdPet($id_pet)
    {
        $this->id_pet = $id_pet;
        return $this;
    }

    /**
     * @param mixed $data_nascimento
     * @return PetDetailsViewModelBuilder
     */
    public function setDataNascimento($data_nascimento)
    {
        $this->data_nascimento = $data_nascimento;
        return $this;
    }

    /**
     * @param mixed $cor
     * @return PetDetailsViewModelBuilder
     */
    public function setCor($cor)
    {
        $this->cor = $cor;
        return $this;
    }

    /**
     * @param mixed $sexo
     * @return PetDetailsViewModelBuilder
     */
    public function setSexo($sexo)
    {
        $this->sexo = $sexo;
        return $this;
    }

    /**
     * @param mixed $castrado
     * @return PetDetailsViewModelBuilder
     */
    public function setCastrado($castrado)
    {
        $this->castrado = $castrado;
        return $this;
    }

    /**
     * @param mixed $numero_chip
     * @return PetDetailsViewModelBuilder
     */
    public function setNumeroChip($numero_chip)
    {
        $this->numero_chip = $numero_chip;
        return $this;
    }

    /**
     * @param mixed $rga_pedigree
     * @return PetDetailsViewModelBuilder
     */
    public function setRgaPedigree($rga_pedigree)
    {
        $this->rga_pedigree = $rga_pedigree;
        return $this;
    }

    /**
     * @param mixed $doado
     * @return PetDetailsViewModelBuilder
     */
    public function setDoado($doado)
    {
        $this->doado = $doado;
        return $this;
    }

    /**
     * @param mixed $id_raca
     * @return PetDetailsViewModelBuilder
     */
    public function setIdRaca($id_raca)
    {
        $this->id_raca = $id_raca;
        return $this;
    }

    /**
     * @param mixed $nome_raca
     * @return PetDetailsViewModelBuilder
     */
    public function setNomeRaca($nome_raca)
    {
        $this->nome_raca = $nome_raca;
        return $this;
    }

    /**
     * @param mixed $id_especie
     * @return PetDetailsViewModelBuilder
     */
    public function setIdEspecie($id_especie)
    {
        $this->id_especie = $id_especie;
        return $this;
    }

    /**
     * @param mixed $nome_especie
     * @return PetDetailsViewModelBuilder
     */
    public function setNomeEspecie($nome_especie)
    {
        $this->nome_especie = $nome_especie;
        return $this;
    }

    /**
     * @param mixed $id_cliente
     * @return PetDetailsViewModelBuilder
     */
    public function setIdCliente($id_cliente)
    {
        $this->id_cliente = $id_cliente;
        return $this;
    }

    /**
     * @param mixed $nome
     * @return PetDetailsViewModelBuilder
     */
    public function setNome($nome)
    {
        $this->nome = $nome;
        return $this;
    }

    /**
     * @param mixed $cpf
     * @return PetDetailsViewModelBuilder
     */
    public function setCpf($cpf)
    {
        $this->cpf = $cpf;
        return $this;
    }

    /**
     * @param mixed $id_paciente
     * @return PetDetailsViewModelBuilder
     */
    public function setIdPaciente($id_paciente)
    {
        $this->id_paciente = $id_paciente;
        return $this;
    }



    public function build() : PetDetailsViewModel
    {
        $assistente_details_vm = new PetDetailsViewModel();
        $assistente_details_vm->setIdPet($this->id_pet);
        $assistente_details_vm->setDataNascimento($this->data_nascimento);
        $assistente_details_vm->setCor($this->cor);
        $assistente_details_vm->setSexo($this->sexo);
        $assistente_details_vm->setCastrado($this->castrado);
        $assistente_details_vm->setNumeroChip($this->numero_chip);
        $assistente_details_vm->setRgaPedigree($this->rga_pedigree);
        $assistente_details_vm->setDoado($this->doado);
        $assistente_details_vm->setIdRaca($this->id_raca);
        $assistente_details_vm->setNomeRaca($this->nome_raca);
        $assistente_details_vm->setIdEspecie($this->id_especie);
        $assistente_details_vm->setNomeEspecie($this->nome_especie);
        $assistente_details_vm->setIdCliente($this->id_cliente);
        $assistente_details_vm->setNome($this->nome);
        $assistente_details_vm->setCpf($this->cpf);
        $assistente_details_vm->setNomePet($this->nome_pet);
        $assistente_details_vm->setPorte($this->porte);
        $assistente_details_vm->setObservacoes($this->observacoes);
        $assistente_details_vm->setIdPaciente($this->id_paciente);
        $assistente_details_vm->setPeso($this->peso);
        return $assistente_details_vm;
    }
}