<?php

namespace App\Entities\Loja;

use App\Utils\Builder;
use Exception;

class LojaBuilder implements Builder {
	protected $id;
	protected $id_unidade;
	protected $id_status;
	protected $criado_por;
	protected $data_criacao;
	protected $hora_criacao;
	protected $alterado_por;
	protected $data_alteracao;
	protected $hora_alteracao;

	public function build(): Loja {

		$pessoa = new Loja();
		if (isset( $this->id )) {
			$pessoa->setId( $this->id );
		}
		if (isset( $this->telefone_1 )) {
			$pessoa->setTelefone1( $this->telefone_1 );
		}
		if (isset( $this->telefone_2 )) {
			$pessoa->setTelefone2( $this->telefone_2 );
		}
		if (isset( $this->telefone_3 )) {
			$pessoa->setTelefone3( $this->telefone_3 );
		}
		if (isset( $this->id_endereco )) {
			$pessoa->setIdEndereco( $this->id_endereco );
		}
		if (isset( $this->id_tipo_pessoa )) {
			$pessoa->setIdTipoPessoa( $this->id_tipo_pessoa );
		}
		if (isset( $this->adicionado_por )) {
			$pessoa->setAdicionadoPor( $this->adicionado_por );
		}
		if (isset( $this->alterado_por )) {
			$pessoa->setAlteradoPor( $this->alterado_por );
		}
		if (isset( $this->criado_em )) {
			$pessoa->setCriadoEm( $this->criado_em );
		}
		if (isset( $this->alterado_em )) {
			$pessoa->setAlteradoEm( $this->alterado_em );
		}
		if (isset( $this->observacao )) {
			$pessoa->setObservacao( $this->observacao );
		}
		return $pessoa;

	}

	/**
	 *
	 * @param mixed $id
	 */
	public function setId($id): LojaBuilder {

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

	}

	/**
	 *
	 * @param mixed $id_unidade
	 */
	public function setIdUnidade($id_unidade): LojaBuilder {

		$this->id_unidade = $id_unidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_status
	 */
	public function setIdStatus($id_status): LojaBuilder {

		$this->id_status = $id_status;
		return $this;

	}

	/**
	 *
	 * @param mixed $criado_por
	 */
	public function setCriadoPpor($criado_por): LojaBuilder {

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

	}

	/**
	 *
	 * @param mixed $data_criacao
	 */
	public function setDataCriacao($data_criacao): LojaBuilder {

		$this->data_criacao = $data_criacao;
		return $this;

	}

	/**
	 *
	 * @param mixed $hora_criacao
	 */
	public function setHoraCriacao($hora_criacao): LojaBuilder {

		$this->hora_criacao = $hora_criacao;
		return $this;

	}

	/**
	 *
	 * @param mixed $alterado_por
	 */
	public function setAlteradoPor($alterado_por): LojaBuilder {

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

	}

	/**
	 *
	 * @param mixed $data_alteracao
	 */
	public function setDataAlteracao($data_alteracao): LojaBuilder {

		$this->data_alteracao = $data_alteracao;
		return $this;

	}

	/**
	 *
	 * @param mixed $hora_alteracao
	 */
	public function setHoraAlteracao($hora_alteracao): LojaBuilder {

		$this->hora_alteracao = $hora_alteracao;
		return $this;

	}

}
