<?php

namespace App\Entities\Pergunta;

use App\Utils\Builder;

class PerguntaBuilder implements Builder {
	protected $id;
	protected $texto_pergunta;
	protected $id_tipo_pergunta;
	protected $obrigatorio;
	protected $id_formulario;
	protected $ordem;
	protected $ativo;
	
	public function build(): Pergunta {
		
		$pergunta = new Pergunta();
		
		if (isset( $this->id )) {
			$pergunta->setId( $this->id );
		}
		if (isset( $this->texto_pergunta )) {
			$pergunta->setTextoPergunta( $this->texto_pergunta );
		}
		if (isset( $this->id_tipo_pergunta )) {
			$pergunta->setIdTipoPergunta( $this->id_tipo_pergunta );
		}
		if (isset( $this->obrigatorio )) {
			$pergunta->setObrigatorio( $this->obrigatorio );
		}
		if (isset( $this->id_formulario )) {
			$pergunta->setIdFormulario( $this->id_formulario );
		}
		if (isset( $this->ordem )) {
			$pergunta->setOrdem( $this->ordem );
		}
		if (isset( $this->ativo )) {
			$pergunta->setAtivo( $this->ativo );
		}
		
		return $pergunta;
		
	}

	public function setId(int $id): PerguntaBuilder {

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

	}

	/**
	 *
	 * @param string $texto_pergunta
	 */
	public function setTextoPergunta(string $texto_pergunta): PerguntaBuilder {

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

	}

	/**
	 *
	 * @param int $id_tipo_pergunta
	 */
	public function setIdTipoPergunta(int $id_tipo_pergunta): PerguntaBuilder {

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

	}

	/**
	 *
	 * @param int $obrigatorio
	 */
	public function setObrigatorio(int $obrigatorio): PerguntaBuilder {

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

	}

	/**
	 *
	 * @param int $id_formulario
	 */
	public function setIdFormulario(int $id_formulario): PerguntaBuilder {

		$this->id_formulario = $id_formulario;
		return $this;

	}

	/**
	 *
	 * @param int $ordem
	 */
	public function setOrdem(int $ordem): PerguntaBuilder {

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

	}

	/**
	 *
	 * @param int $ativo
	 */
	public function setAtivo(int $ativo): PerguntaBuilder {
		
		$this->ativo = $ativo;
		return $this;
		
	}
	
	

}