<?php

namespace App\Entities\Consulta;

use App\Utils\Builder;

class ConsultaBuilder implements Builder {
	protected $id;
	protected $adicionado_por;
	protected $alterado_por;
	protected $criado_em;
	protected $alterado_em;
	protected $id_agendamento;
	protected $id_formulario;
	protected $titulo;
	protected $descricao;

	public function setId(int $id): ConsultaBuilder {

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

	}

	public function setAdicionadoPor(?int $adicionado_por): ConsultaBuilder {

		$this->adicionado_por = $adicionado_por;
		return $this;

	}

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

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

	}

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

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

	}

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

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

	}

	public function setIdAgendamento(int $id_agendamento): ConsultaBuilder {

		$this->id_agendamento = $id_agendamento;
		return $this;

	}

	public function setTitulo(string $titulo): ConsultaBuilder {

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

	}

	public function setDescricao(string $descricao): ConsultaBuilder {

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

	}

	public function setIdFormulario($id_formulario) {

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

	}

	public function build(): Consulta {

		$consulta = new Consulta();
		if (isset( $this->id )) {
			$consulta->setid( $this->id );
		}
		if (isset( $this->adicionado_por )) {
			$consulta->setadicionadopor( $this->adicionado_por );
		}
		if (isset( $this->alterado_por )) {
			$consulta->setalteradopor( $this->alterado_por );
		}
		if (isset( $this->criado_em )) {
			$consulta->setcriadoem( $this->criado_em );
		}
		if (isset( $this->alterado_em )) {
			$consulta->setalteradoem( $this->alterado_em );
		}
		if (isset( $this->id_agendamento )) {
			$consulta->setidAgendamento( $this->id_agendamento );
		}
		if (isset( $this->titulo )) {
			$consulta->setTitulo( $this->titulo );
		}
		if (isset( $this->descricao )) {
			$consulta->setDescricao( $this->descricao );
		}
		if (isset( $this->id_formulario )) {
			$consulta->setIdFormulario( $this->id_formulario );
		}
		return $consulta;

	}

}