<?php namespace App\ViewModels\Procedimento\ProcedimentoUpdateViewModel;

use App\Utils\Builder;

class ProcedimentoUpdateViewModelBuilder implements Builder
{

    protected $descricao;
    protected $id_tipo_procedimento;
    protected $exames;
    protected $alterado_por;

    public function setDescricao(?string $descricao): ProcedimentoUpdateViewModelBuilder
    {
        $this->descricao = $descricao;
        return $this;
    }

    public function setIdTipoProcedimento(?int $id_tipo_procedimento): ProcedimentoUpdateViewModelBuilder
    {
        $this->id_tipo_procedimento = $id_tipo_procedimento;
        return $this;
    }

    public function setAlteradoPor(int $alterado_por): ProcedimentoUpdateViewModelBuilder
    {
        $this->alterado_por = $alterado_por;
        return $this;
    }

    public function setExames($exames)
    {
        $this->exames = $exames;
        return $this;
    }

    public function build() : ProcedimentoUpdateViewModel
    {
        $procedimento_update_vm = new ProcedimentoUpdateViewModel();
        $procedimento_update_vm->setdescricao($this->descricao);
        $procedimento_update_vm->setidtipoprocedimento($this->id_tipo_procedimento);
        $procedimento_update_vm->setExames($this->exames);
        return $procedimento_update_vm;
    }
}