<?php namespace App\ViewModels\Internacao\InternacaoDetailsViewModel;


use App\Utils\Builder;

class InternacaoDetailsViewModelBuilder implements Builder
{
    protected $cliente_id;
    protected $nome_cliente;
    protected $id_pet;
    protected $nome_pet;
    protected $data_requisicao;
    protected $hora_requisicao;
    protected $convenio_cliente_id;
    protected $status_requisicao;
    protected $nome_status_requisicao;
    protected $codigo;
    protected $data_execucao;
    protected $usuario_executor;
    protected $data_entrada_internacao;
    protected $data_saida_internacao;

    /**
     * @param mixed $data_entrada_internacao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setDataEntradaInternacao($data_entrada_internacao)
    {
        $this->data_entrada_internacao = $data_entrada_internacao;
        return $this;
    }

    /**
     * @param mixed $data_saida_internacao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setDataSaidaInternacao($data_saida_internacao)
    {
        $this->data_saida_internacao = $data_saida_internacao;
        return $this;
    }

    /**
     * @param mixed $cliente_id
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setClienteId($cliente_id)
    {
        $this->cliente_id = $cliente_id;
        return $this;
    }

    /**
     * @param mixed $nome_cliente
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setNomeCliente($nome_cliente)
    {
        $this->nome_cliente = $nome_cliente;
        return $this;
    }

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

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

    /**
     * @param mixed $data_requisicao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setDataRequisicao($data_requisicao)
    {
        $this->data_requisicao = $data_requisicao;
        return $this;
    }

    /**
     * @param mixed $hora_requisicao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setHoraRequisicao($hora_requisicao)
    {
        $this->hora_requisicao = $hora_requisicao;
        return $this;
    }

    /**
     * @param mixed $convenio_cliente_id
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setConvenioClienteId($convenio_cliente_id)
    {
        $this->convenio_cliente_id = $convenio_cliente_id;
        return $this;
    }

    /**
     * @param mixed $status_requisicao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setStatusRequisicao($status_requisicao)
    {
        $this->status_requisicao = $status_requisicao;
        return $this;
    }

    /**
     * @param mixed $nome_status_requisicao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setNomeStatusRequisicao($nome_status_requisicao)
    {
        $this->nome_status_requisicao = $nome_status_requisicao;
        return $this;
    }

    /**
     * @param mixed $codigo
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setCodigo($codigo)
    {
        $this->codigo = $codigo;
        return $this;
    }

    /**
     * @param mixed $data_execucao
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setDataExecucao($data_execucao)
    {
        $this->data_execucao = $data_execucao;
        return $this;
    }

    /**
     * @param mixed $usuario_executor
     * @return InternacaoDetailsViewModelBuilder
     */
    public function setUsuarioExecutor($usuario_executor)
    {
        $this->usuario_executor = $usuario_executor;
        return $this;
    }


    public function build() : InternacaoDetailsViewModel
    {
        $internacao_details_vm = new InternacaoDetailsViewModel();
        $internacao_details_vm->setClienteId($this->cliente_id);
        $internacao_details_vm->setNomeCliente($this->nome_cliente);
        $internacao_details_vm->setIdPet($this->id_pet);
        $internacao_details_vm->setNomePet($this->nome_pet);
        $internacao_details_vm->setDataRequisicao($this->data_requisicao);
        $internacao_details_vm->setHoraRequisicao($this->hora_requisicao);
        $internacao_details_vm->setConvenioClienteId($this->convenio_cliente_id);
        $internacao_details_vm->setStatusRequisicao($this->status_requisicao);
        $internacao_details_vm->setNomeStatusRequisicao($this->nome_status_requisicao);
        $internacao_details_vm->setCodigo($this->codigo);
        $internacao_details_vm->setDataExecucao($this->data_execucao);
        $internacao_details_vm->setUsuarioExecutor($this->usuario_executor);
        $internacao_details_vm->setDataEntradaInternacao($this->data_entrada_internacao);
        $internacao_details_vm->setDataSaidaInternacao($this->data_saida_internacao);
        return $internacao_details_vm;
    }


}