<?php

namespace App\Entities\ConfirmacaoEmail;

use App\Utils\Builder;

class ConfirmacaoEmailBuilder implements Builder {
	private $id;
	private $id_usuario;
	private $token;
	private $tempo_expiracao;
	private $criado_em;
	private $alterado_em;
	private $verificado;

	public function setId(int $id): ConfirmacaoEmailBuilder {

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

	}

	public function setIdUsuario(int $id_usuario): ConfirmacaoEmailBuilder {

		$this->id_usuario = $id_usuario;
		return $this;

	}

	public function setToken(string $token): ConfirmacaoEmailBuilder {

		$this->token = $token;
		return $this;

	}

	public function setTempoExpiracao(int $tempo_expiracao): ConfirmacaoEmailBuilder {

		$this->tempo_expiracao = $tempo_expiracao;
		return $this;

	}

	public function setCriadoEm(string $criado_em): ConfirmacaoEmailBuilder {

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

	}

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

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

	}

	public function setVerificado(int $verificado): ConfirmacaoEmailBuilder {

		$this->verificado = $verificado;
		return $this;

	}

	public function build(): ConfirmacaoEmail {

		$confirmacao_email = new ConfirmacaoEmail();
		if (isset( $this->id )) {
			$confirmacao_email->setId( $this->id );
		}
		if (isset( $this->id_usuario )) {
			$confirmacao_email->setIdUsuario( $this->id_usuario );
		}
		if (isset( $this->token )) {
			$confirmacao_email->setToken( $this->token );
		}
		if (isset( $this->tempo_expiracao )) {
			$confirmacao_email->setTempoExpiracao( $this->tempo_expiracao );
		}
		if (isset( $this->criado_em )) {
			$confirmacao_email->setCriadoEm( $this->criado_em );
		}
		if (isset( $this->alterado_em )) {
			$confirmacao_email->setAlteradoEm( $this->alterado_em );
		}
		if (isset( $this->alterado_em )) {
			$confirmacao_email->setVerificado( $this->verificado );
		}
		return $confirmacao_email;

	}

}