<?php


namespace App\Entities\Setor;

use App\Utils\Builder;

class SetorBuilder implements Builder
{
    protected $id;
    protected $descricao;
    protected $id_centro_custo;
    protected $criado_em;
    protected $atualizado_em;
    protected $desativado_em;
    protected $criado_por;
    protected $alterado_por;
    protected $desativado_por;

    /**
     * @param mixed $id
     * @return SetorBuilder
     */
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * @param mixed $descricao
     * @return SetorBuilder
     */
    public function setDescricao($descricao)
    {
        $this->descricao = $descricao;
        return $this;
    }

    /**
     * @param mixed $id_centro_custo
     * @return SetorBuilder
     */
    public function setIdCentroCusto($id_centro_custo)
    {
        $this->id_centro_custo = $id_centro_custo;
        return $this;
    }

    /**
     * @param mixed $criado_em
     * @return SetorBuilder
     */
    public function setCriadoEm($criado_em)
    {
        $this->criado_em = $criado_em;
        return $this;
    }

    /**
     * @param mixed $atualizado_em
     * @return SetorBuilder
     */
    public function setAtualizadoEm($atualizado_em)
    {
        $this->atualizado_em = $atualizado_em;
        return $this;
    }

    /**
     * @param mixed $desativado_em
     * @return SetorBuilder
     */
    public function setDesativadoEm($desativado_em)
    {
        $this->desativado_em = $desativado_em;
        return $this;
    }

    /**
     * @param mixed $criado_por
     * @return SetorBuilder
     */
    public function setCriadoPor($criado_por)
    {
        $this->criado_por = $criado_por;
        return $this;
    }

    /**
     * @param mixed $alterado_por
     * @return SetorBuilder
     */
    public function setAlteradoPor($alterado_por)
    {
        $this->alterado_por = $alterado_por;
        return $this;
    }

    /**
     * @param mixed $desativado_por
     * @return SetorBuilder
     */
    public function setDesativadoPor($desativado_por)
    {
        $this->desativado_por = $desativado_por;
        return $this;
    }

    public function build() : Setor
    {
        $paciente = new Setor();
        if (isset($this->id)) {
            $paciente->setId($this->id);
        }
        if (isset($this->descricao)) {
            $paciente->setDescricao($this->descricao);
        }
        if (isset($this->criado_em)) {
            $paciente->setCriadoEm($this->criado_em);
        }
        if (isset($this->atualizado_em)) {
            $paciente->setAtualizadoEm($this->atualizado_em);
        }
        if (isset($this->desativado_em)) {
            $paciente->setDesativadoEm($this->desativado_em);
        }
        if (isset($this->criado_por)) {
            $paciente->setCriadoPor($this->criado_por);
        }
        if (isset($this->alterado_por)) {
            $paciente->setAlteradoPor($this->alterado_por);
        }
        if (isset($this->desativado_em)) {
            $paciente->setDesativadoPor($this->desativado_em);
        }
        return $paciente;
    }

}