<?php

namespace App\ViewModels\Formulario\FormularioDetailsViewModel;

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

class FormularioDetailsResponseDatabaseBuilder implements Builder {
	protected $formulario_titulo;
	protected $formulario_ativo;
	protected $formulario_descricao;
	protected $formulario_id_medico;
	protected $formulario_procedimentos;
	protected $pergunta_id;
	protected $pergunta_ordem;
	protected $pergunta_ativo;
	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 $formulario_atendimento_id;

	public function build(): FormularioDetailsResponseDatabase {

		$formulario_details_response_db = new FormularioDetailsResponseDatabase();

		$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->setPerguntaOrdem( $this->pergunta_ordem );
		$formulario_details_response_db->setPerguntaAtivo( $this->pergunta_ativo );		
		$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->setFormularioAtendimentoId( $this->formulario_atendimento_id );

		return $formulario_details_response_db;

	}


    public function setFormularioAtendimentoId($formulario_atendimento_id)
    {
        $this->formulario_atendimento_id = $formulario_atendimento_id;
        return $this;
    }

	public function setFormularioTitulo(string $formulario_titulo): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setFormularioDescricao(string $formulario_descricao): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setFormularioIdMedico($formulario_id_medico): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setPerguntaId(int $pergunta_id): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setPerguntaOrdem(int $pergunta_ordem): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setPerguntaAtivo(int $pergunta_ativo): FormularioDetailsResponseDatabaseBuilder {
		
		$this->pergunta_ativo = $pergunta_ativo;
		return $this;
		
	}
	
	public function setPerguntaTextoPergunta(string $pergunta_texto_pergunta): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setPerguntaIdTipoPergunta(int $pergunta_id_tipo_pergunta): FormularioDetailsResponseDatabaseBuilder {

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

	}

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

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

	}

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

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

	}

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

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

	}

	public function setPerguntaObrigatorio($pergunta_obrigatorio): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setFormularioProcedimentos($formulario_procedimentos): FormularioDetailsResponseDatabaseBuilder {

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

	}

	public function setFormularioAtivo($formulario_ativo) {

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

	}

}