<?php

namespace App\Entities\Formulario;

use App\Utils\Builder;

class FormularioBuilder implements Builder {
	protected $id;
	protected $titulo;
	protected $id_medico;
	protected $alterado_por;
	protected $criado_em;
	protected $criado_por;
	protected $alterado_em;
	protected $descricao;
	protected $ativo;

	public function build(): Formulario {

		$formulario = new Formulario();

		if (isset( $this->id )) {
			$formulario->setId( $this->id );
		}
		if (isset( $this->titulo )) {
			$formulario->setTitulo( $this->titulo );
		}
		if (isset( $this->id_medico )) {
			$formulario->setIdMedico( $this->id_medico );
		}
		if (isset( $this->alterado_por )) {
			$formulario->setAlteradoPor( $this->alterado_por );
		}
		if (isset( $this->criado_em )) {
			$formulario->setCriadoEm( $this->criado_em );
		}
		if (isset( $this->criado_por )) {
			$formulario->setCriadoPor( $this->criado_por );
		}
		if (isset( $this->alterado_em )) {
			$formulario->setAlteradoEm( $this->alterado_em );
		}
		if (isset( $this->descricao )) {
			$formulario->setDescricao( $this->descricao );
		}
		if (isset( $this->ativo )) {
			$formulario->setAtivo( $this->ativo );
		}
		return $formulario;

	}

	public function setId(int $id): FormularioBuilder {

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

	}

	public function setTitulo(string $titulo): FormularioBuilder {

		$this->titulo = $titulo;
		return $this;

	}

	public function setIdMedico($id_medico): FormularioBuilder {

		$this->id_medico = $id_medico;
		return $this;

	}

	public function setAlteradoPor(?int $alterado_por): FormularioBuilder {

		$this->alterado_por = $alterado_por;
		return $this;

	}

	public function setCriadoEm(?string $criado_em): FormularioBuilder {

		$this->criado_em = $criado_em;
		return $this;

	}

	public function setCriadoPor(?int $criado_por): FormularioBuilder {

		$this->criado_por = $criado_por;
		return $this;

	}

	public function setAlteradoEm(?string $alterado_em): FormularioBuilder {

		$this->alterado_em = $alterado_em;
		return $this;

	}

	public function setDescricao(string $descricao): FormularioBuilder {

		$this->descricao = $descricao;
		return $this;

	}

	public function setAtivo(int $ativo): FormularioBuilder {

		$this->ativo = $ativo;
		return $this;

	}

}