<?php


namespace App\Entities\Cliente;


use App\Utils\Builder;

class ClienteBuilder implements Builder
{
    protected $id;
    protected $id_pessoa;
    protected $adicionado_por;
    protected $alterado_por;
    protected $criado_em;
    protected $alterado_em;

    public function setId(int $id): ClienteBuilder
    {
        $this->id = $id;
        return $this;
    }

    public function setIdPessoa(int $id_pessoa): ClienteBuilder
    {
        $this->id_pessoa = $id_pessoa;
        return $this;
    }

    public function setAdicionadoPor(?int $adicionado_por): ClienteBuilder
    {
        $this->adicionado_por = $adicionado_por;
        return $this;
    }

    public function setAlteradoPor(?int $alterado_por): ClienteBuilder
    {
        $this->alterado_por = $alterado_por;
        return $this;
    }

    public function setCriadoEm(?string $criado_em): ClienteBuilder
    {
        $this->criado_em = $criado_em;
        return $this;
    }

    public function setAlteradoEm(?string $alterado_em): ClienteBuilder
    {
        $this->alterado_em = $alterado_em;
        return $this;
    }

    public function build()
    {
        $cliente = new Cliente();
        if (isset($this->id)) {
            $cliente->setId($this->id);
        }
        if (isset($this->id_pessoa)) {
            $cliente->setIdPessoa($this->id_pessoa);
        }
        if (isset($this->adicionado_por)) {
            $cliente->setAdicionadopor($this->adicionado_por);
        }
        if (isset($this->alterado_por)) {
            $cliente->setAlteradopor($this->alterado_por);
        }
        if (isset($this->criado_em)) {
            $cliente->setCriadoEm($this->criado_em);
        }
        if (isset($this->alterado_em)) {
            $cliente->setAlteradoEm($this->alterado_em);
        }
        return $cliente;
    }
}