<?php


namespace App\ViewModels\Consulta\ConsultaDetailsViewModel;

use App\Utils\Builder;

class ConsultaDetailsViewModelBuilder implements Builder
{
    protected $titulo;
    protected $descricao;
    protected $id_medico;
    protected $perguntas;
    protected $consulta_titulo;
    protected $consulta_descricao;
    protected $id_agendamento;
    protected $usuario_executor_exame;
    protected $usuario_medico_id;

    /**
     * @param mixed $usuario_executor_exame
     * @return ConsultaDetailsViewModelBuilder
     */
    public function setUsuarioExecutorExame($usuario_executor_exame)
    {
        $this->usuario_executor_exame = $usuario_executor_exame;
        return $this;
    }

    public function setUsuarioMedicoId($usuario_medico_id)
    {
        $this->usuario_medico_id = $usuario_medico_id;
        return $this;
    }

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

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

    public function setIdMedico(int $id_medico): ConsultaDetailsViewModelBuilder
    {
        $this->id_medico = $id_medico;
        return $this;
    }

    public function setTituloConsulta($titulo_consulta)
    {
        $this->titulo_consulta = $titulo_consulta;
        return $this;
    }

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

    public function setConsultaTitulo($consulta_titulo)
    {
        $this->consulta_titulo = $consulta_titulo;
        return $this;
    }

    public function setConsultaDescricao($consulta_descricao)
    {
        $this->consulta_descricao = $consulta_descricao;
        return $this;
    }

    public function setPerguntas(PerguntaDetailsConsultaCollection $perguntas): ConsultaDetailsViewModelBuilder
    {
        $this->perguntas = $perguntas;
        return $this;
    }



    public function build(): ConsultaDetailsViewModel
    {
        $formulario_details_vm = new ConsultaDetailsViewModel();
        $formulario_details_vm->settitulo($this->titulo);
        $formulario_details_vm->setdescricao($this->descricao);
        $formulario_details_vm->setidmedico($this->id_medico);
        $formulario_details_vm->setperguntas($this->perguntas);
        $formulario_details_vm->setIdAgendamento($this->id_agendamento);
        $formulario_details_vm->setConsultaTitulo($this->consulta_titulo);
        $formulario_details_vm->setConsultaDescricao($this->consulta_descricao);
        $formulario_details_vm->setUsuarioExecutorExame($this->usuario_executor_exame);
        $formulario_details_vm->setUsuarioMedicoId($this->usuario_medico_id);
        return $formulario_details_vm;
    }
}