<?php namespace App\Entities\PessoaJuridica;

use App\Utils\Builder;

class PessoaJuridicaBuilder implements Builder
{
    private $id;
    private $id_pessoa;
    private $nome_fantasia;
    private $razao_social;
    private $cnpj;

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

    /**
     * @param mixed $id_pessoa
     * @return PessoaJuridicaBuilder
     */
    public function setIdPessoa($id_pessoa)
    {
        $this->id_pessoa = $id_pessoa;
        return $this;
    }

    /**
     * @param mixed $nome_fantasia
     * @return PessoaJuridicaBuilder
     */
    public function setNomeFantasia($nome_fantasia)
    {
        $this->nome_fantasia = $nome_fantasia;
        return $this;
    }

    /**
     * @param mixed $razao_social
     * @return PessoaJuridicaBuilder
     */
    public function setRazaoSocial($razao_social)
    {
        $this->razao_social = $razao_social;
        return $this;
    }

    /**
     * @param mixed $cnpj
     * @return PessoaJuridicaBuilder
     */
    public function setCnpj($cnpj)
    {
        $this->cnpj = $cnpj;
        return $this;
    }

    public function build()
    {
        $pessoa_juridica = new PessoaJuridica();
        if (isset($this->id)) {
            $pessoa_juridica->setid($this->id);
        }
        if (isset($this->id_pessoa)) {
            $pessoa_juridica->setIdPessoa($this->id_pessoa);
        }
        if (isset($this->nome_fantasia)) {
            $pessoa_juridica->setNomeFantasia($this->nome_fantasia);
        }
        if (isset($this->razao_social)) {
            $pessoa_juridica->setRazaoSocial($this->razao_social);
        }
        if (isset($this->cnpj)) {
            $pessoa_juridica->setCnpj($this->cnpj);
        }
        return $pessoa_juridica;
    }
}