<?php

namespace App\ViewModels\Consulta\ConsultaDetailsViewModel;

use App\Utils\Builder;

class PerguntaDetailsConsultaBuilder implements Builder {
	protected $id;
	protected $texto_pergunta;
	protected $id_tipo_pergunta;
	protected $obrigatorio;
	protected $pergunta_ativo;
	protected $pergunta_ordem;
	protected $opcoes;
	protected $resposta_pergunta_textual;
	protected $resposta_pergunta_decimal;
	protected $resposta_pergunta_inteira;
	protected $resposta_pergunta_opcao;

	public function setId(int $id): PerguntaDetailsConsultaBuilder {

		$this->id = $id;
		return $this;

	}

	public function setTextoPergunta(string $texto_pergunta): PerguntaDetailsConsultaBuilder {

		$this->texto_pergunta = $texto_pergunta;
		return $this;

	}

	public function setIdTipoPergunta(int $id_tipo_pergunta): PerguntaDetailsConsultaBuilder {

		$this->id_tipo_pergunta = $id_tipo_pergunta;
		return $this;

	}

	public function setOpcoes(OpcaoDetailsConsultaCollection $opcoes): PerguntaDetailsConsultaBuilder {

		$this->opcoes = $opcoes;
		return $this;

	}

	public function setObrigatorio($obrigatorio): PerguntaDetailsConsultaBuilder {

		$this->obrigatorio = $obrigatorio;
		return $this;

	}

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

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

	}

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

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

	}

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

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

	}

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

		$this->resposta_pergunta_opcao = $resposta_pergunta_opcao;
		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(): PerguntaDetailsConsulta {

		$pergunta_details = new PerguntaDetailsConsulta();
		$pergunta_details->setid( $this->id );
		$pergunta_details->settextopergunta( $this->texto_pergunta );
		$pergunta_details->setidtipopergunta( $this->id_tipo_pergunta );
		$pergunta_details->setObrigatorio( $this->obrigatorio );
		$pergunta_details->setPergunta_ativo( $this->pergunta_ativo );
		$pergunta_details->setPergunta_ordem( $this->pergunta_ordem );
		$pergunta_details->setopcoes( $this->opcoes );
		$pergunta_details->setRespostaPerguntaTextual( $this->resposta_pergunta_textual );
		$pergunta_details->setRespostaPerguntaInteira( $this->resposta_pergunta_inteira );
		$pergunta_details->setRespostaPerguntaDecimal( $this->resposta_pergunta_decimal );
		$pergunta_details->setRespostaPerguntaOpcao( $this->resposta_pergunta_opcao );
		return $pergunta_details;

	}

}