<?php

namespace App\ViewModels\Formulario\FormularioDetailsViewModel;

use App\Utils\Builder;

class PerguntaDetailsBuilder implements Builder {
	protected $id;
	protected $texto_pergunta;
	protected $id_tipo_pergunta;
	protected $obrigatorio;
	protected $opcoes;
	protected $ordem;
	protected $ativo;

	public function build(): PerguntaDetails {

		$pergunta_details = new PerguntaDetails();

		$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->setOpcoes( $this->opcoes );
		$pergunta_details->setOrdem( $this->ordem );
		$pergunta_details->setAtivo( $this->ativo );
		
		return $pergunta_details;

	}

	public function setId(int $id): PerguntaDetailsBuilder {

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

	}

	public function setTextoPergunta(string $texto_pergunta): PerguntaDetailsBuilder {

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

	}

	public function setIdTipoPergunta(int $id_tipo_pergunta): PerguntaDetailsBuilder {

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

	}

	public function setOrdem(int $ordem): PerguntaDetailsBuilder {

		$this->ordem = $ordem;
		return $this;

	}

	public function setAtivo(int $ativo): PerguntaDetailsBuilder {
		
		$this->ativo = $ativo;
		return $this;
		
	}
	
	public function setOpcoes(OpcaoDetailsCollection $opcoes): PerguntaDetailsBuilder {

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

	}

	public function setObrigatorio($obrigatorio): PerguntaDetailsBuilder {

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

	}

}