<?php

namespace App\ViewModels\Consulta\ConsultaDetailsViewModel;

use App\Utils\Builder;
use App\Utils\Entity;

class ConsultaDetailsResponseDatabaseBuilder implements Builder {
	protected $consulta_id;
	protected $consulta_titulo;
	protected $consulta_descricao;
	protected $id_agendamento;
	protected $formulario_titulo;
	protected $formulario_ativo;
	protected $formulario_descricao;
	protected $formulario_id_medico;
	protected $formulario_procedimentos;
	protected $pergunta_id;
	protected $pergunta_ativo;
	protected $pergunta_ordem;
	protected $pergunta_texto_pergunta;
	protected $pergunta_id_tipo_pergunta;
	protected $pergunta_obrigatorio;
	protected $opcao_pergunta_id;
	protected $opcao_pergunta_descricao;
	protected $opcao_pergunta_id_pergunta;
	protected $resposta_pergunta_textual;
	protected $resposta_pergunta_decimal;
	protected $resposta_pergunta_inteira;
	protected $resposta_pergunta_opcao;
	protected $formulario_id;
	protected $usuario_executor_exame;
	protected $usuario_medico_id;

	/**
	 *
	 * @param mixed $usuario_executor_exame
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	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 setFormularioTitulo(string $formulario_titulo): ConsultaDetailsResponseDatabaseBuilder {

		$this->formulario_titulo = $formulario_titulo;
		return $this;

	}

	public function setFormularioDescricao(string $formulario_descricao): ConsultaDetailsResponseDatabaseBuilder {

		$this->formulario_descricao = $formulario_descricao;
		return $this;

	}

	public function setFormularioIdMedico(int $formulario_id_medico): ConsultaDetailsResponseDatabaseBuilder {

		$this->formulario_id_medico = $formulario_id_medico;
		return $this;

	}

	public function setPerguntaId(int $pergunta_id): ConsultaDetailsResponseDatabaseBuilder {

		$this->pergunta_id = $pergunta_id;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getFormularioId() {

		return $this->formulario_id;

	}

	/**
	 *
	 * @param mixed $formulario_id
	 */
	public function setFormularioId($formulario_id): ConsultaDetailsResponseDatabaseBuilder {

		$this->formulario_id = $formulario_id;
		return $this;

	}

	public function setPerguntaTextoPergunta(string $pergunta_texto_pergunta): ConsultaDetailsResponseDatabaseBuilder {

		$this->pergunta_texto_pergunta = $pergunta_texto_pergunta;
		return $this;

	}

	public function setPerguntaIdTipoPergunta(int $pergunta_id_tipo_pergunta): ConsultaDetailsResponseDatabaseBuilder {

		$this->pergunta_id_tipo_pergunta = $pergunta_id_tipo_pergunta;
		return $this;

	}

	public function setOpcaoPerguntaId(?int $opcao_pergunta_id): ConsultaDetailsResponseDatabaseBuilder {

		$this->opcao_pergunta_id = $opcao_pergunta_id;
		return $this;

	}

	public function setOpcaoPerguntaDescricao(?string $opcao_pergunta_descricao): ConsultaDetailsResponseDatabaseBuilder {

		$this->opcao_pergunta_descricao = $opcao_pergunta_descricao;
		return $this;

	}

	public function setOpcaoPerguntaIdPergunta(?int $opcao_pergunta_id_pergunta): ConsultaDetailsResponseDatabaseBuilder {

		$this->opcao_pergunta_id_pergunta = $opcao_pergunta_id_pergunta;
		return $this;

	}

	public function setPerguntaObrigatorio($pergunta_obrigatorio): ConsultaDetailsResponseDatabaseBuilder {

		$this->pergunta_obrigatorio = $pergunta_obrigatorio;
		return $this;

	}

	public function setFormularioProcedimentos($formulario_procedimentos): ConsultaDetailsResponseDatabaseBuilder {

		$this->formulario_procedimentos = $formulario_procedimentos;
		return $this;

	}

	public function setFormularioAtivo($formulario_ativo) {

		$this->formulario_ativo = $formulario_ativo;
		return $this;

	}

	/**
	 *
	 * @param mixed $resposta_pergunta_textual
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setRespostaPerguntaTextual($resposta_pergunta_textual) {

		$this->resposta_pergunta_textual = $resposta_pergunta_textual;
		return $this;

	}

	/**
	 *
	 * @param mixed $resposta_pergunta_decimal
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setRespostaPerguntaDecimal($resposta_pergunta_decimal) {

		$this->resposta_pergunta_decimal = $resposta_pergunta_decimal;
		return $this;

	}

	/**
	 *
	 * @param mixed $resposta_pergunta_inteira
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setRespostaPerguntaInteira($resposta_pergunta_inteira) {

		$this->resposta_pergunta_inteira = $resposta_pergunta_inteira;
		return $this;

	}

	/**
	 *
	 * @param mixed $resposta_pergunta_opcao
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setRespostaPerguntaOpcao($resposta_pergunta_opcao) {

		$this->resposta_pergunta_opcao = $resposta_pergunta_opcao;
		return $this;

	}

	/**
	 *
	 * @param mixed $consulta_titulo
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setConsultaTitulo($consulta_titulo) {

		$this->consulta_titulo = $consulta_titulo;
		return $this;

	}

	/**
	 *
	 * @param mixed $consulta_descricao
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setConsultaDescricao($consulta_descricao) {

		$this->consulta_descricao = $consulta_descricao;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_agendamento
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setIdAgendamento($id_agendamento) {

		$this->id_agendamento = $id_agendamento;
		return $this;

	}

	/**
	 *
	 * @param mixed $consulta_id
	 * @return ConsultaDetailsResponseDatabaseBuilder
	 */
	public function setConsultaId($consulta_id) {

		$this->consulta_id = $consulta_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $pergunta_ativo
	 */
	public function setPergunta_ativo($pergunta_ativo) {

		$this->pergunta_ativo = $pergunta_ativo;
		return $this;

	}

	/**
	 *
	 * @param mixed $pergunta_ordem
	 */
	public function setPergunta_ordem($pergunta_ordem) {

		$this->pergunta_ordem = $pergunta_ordem;
		return $this;

	}

	public function build(): ConsultaDetailsResponseDatabase {

		$formulario_details_response_db = new ConsultaDetailsResponseDatabase();
		$formulario_details_response_db->setConsultaTitulo( $this->consulta_titulo );
		$formulario_details_response_db->setConsultaDescricao( $this->consulta_descricao );
		$formulario_details_response_db->setIdAgendamento( $this->id_agendamento );
		$formulario_details_response_db->setformulariotitulo( $this->formulario_titulo );
		$formulario_details_response_db->setFormularioAtivo( $this->formulario_ativo );
		$formulario_details_response_db->setformulariodescricao( $this->formulario_descricao );
		$formulario_details_response_db->setformularioidmedico( $this->formulario_id_medico );
		$formulario_details_response_db->setFormularioProcedimentos( $this->formulario_procedimentos );
		$formulario_details_response_db->setperguntaid( $this->pergunta_id );
		$formulario_details_response_db->setPergunta_ativo( $this->pergunta_ativo );
		$formulario_details_response_db->setPergunta_ordem( $this->pergunta_ordem );
		$formulario_details_response_db->setperguntatextopergunta( $this->pergunta_texto_pergunta );
		$formulario_details_response_db->setperguntaidtipopergunta( $this->pergunta_id_tipo_pergunta );
		$formulario_details_response_db->setPerguntaObrigatorio( $this->pergunta_obrigatorio );
		$formulario_details_response_db->setopcaoperguntaid( $this->opcao_pergunta_id );
		$formulario_details_response_db->setopcaoperguntadescricao( $this->opcao_pergunta_descricao );
		$formulario_details_response_db->setopcaoperguntaidpergunta( $this->opcao_pergunta_id_pergunta );
		$formulario_details_response_db->setRespostaPerguntaDecimal( $this->resposta_pergunta_decimal );
		$formulario_details_response_db->setRespostaPerguntaInteira( $this->resposta_pergunta_inteira );
		$formulario_details_response_db->setRespostaPerguntaOpcao( $this->resposta_pergunta_opcao );
		$formulario_details_response_db->setRespostaPerguntaTextual( $this->resposta_pergunta_textual );
		$formulario_details_response_db->setConsultaId( $this->consulta_id );
		$formulario_details_response_db->setUsuarioExecutorExame( $this->usuario_executor_exame );
		$formulario_details_response_db->setUsuarioMedicoId( $this->usuario_medico_id );

		return $formulario_details_response_db;

	}

}