<?php


namespace App\ViewModels\Consulta\ConsultaRegistrationViewModel;


use App\Utils\Builder;

class ConsultaRegistrationViewModelBuilder implements Builder
{
    protected $id_agendamento;
    protected $id_formulario;
    protected $titulo;
    protected $descricao;
    protected $resposta_numerica_inteira_collection;
    protected $resposta_numerica_decimal_collection;
    protected $resposta_textual_collection;
    protected $resposta_escolha_opcao_collection;

    public function setIdAgendamento(int $id_agendamento): ConsultaRegistrationViewModelBuilder
    {
        $this->id_agendamento = $id_agendamento;
        return $this;
    }

    public function setTitulo(string $titulo): ConsultaRegistrationViewModelBuilder
    {
        $this->titulo = $titulo;
        return $this;
    }

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

    public function setRespostaNumericaInteiraCollection(RespostaFormularioCollection $resposta_numerica_inteira_collection): ConsultaRegistrationViewModelBuilder
    {
        $this->resposta_numerica_inteira_collection = $resposta_numerica_inteira_collection;
        return $this;
    }

    public function setRespostaNumericaDecimalCollection(RespostaFormularioCollection $resposta_numerica_decimal_collection): ConsultaRegistrationViewModelBuilder
    {
        $this->resposta_numerica_decimal_collection = $resposta_numerica_decimal_collection;
        return $this;
    }

    public function setRespostaTextualCollection(RespostaFormularioCollection $resposta_textual_collection): ConsultaRegistrationViewModelBuilder
    {
        $this->resposta_textual_collection = $resposta_textual_collection;
        return $this;
    }

    public function setRespostaEscolhaOpcaoCollection(RespostaFormularioCollection $resposta_escolha_opcao_collection): ConsultaRegistrationViewModelBuilder
    {
        $this->resposta_escolha_opcao_collection = $resposta_escolha_opcao_collection;
        return $this;
    }

    public function setIdFormulario($id_formulario)
    {
        $this->id_formulario = $id_formulario;
        return $this;
    }


    public function build(): ConsultaRegistrationViewModel
    {
        $consulta_registration_vm = new ConsultaRegistrationViewModel();
        $consulta_registration_vm->setidagendamento($this->id_agendamento);
        $consulta_registration_vm->settitulo($this->titulo);
        $consulta_registration_vm->setdescricao($this->descricao);
        $consulta_registration_vm->setIdFormulario($this->id_formulario);
        $consulta_registration_vm->setrespostanumericainteiracollection($this->resposta_numerica_inteira_collection);
        $consulta_registration_vm->setrespostanumericadecimalcollection($this->resposta_numerica_decimal_collection);
        $consulta_registration_vm->setrespostatextualcollection($this->resposta_textual_collection);
        $consulta_registration_vm->setrespostaescolhaopcaocollection($this->resposta_escolha_opcao_collection);
        return $consulta_registration_vm;
    }
}