<?php


namespace App\Entities\Paciente;

use App\Utils\Builder;

class PacienteBuilder implements Builder
{
    private $id;
    private $id_pessoa;
    private $adicionado_por;
    private $alterado_por;
    private $criado_em;
    private $alterado_em;
    private $indicado_por;
    private $convenio;
    private $altura;
    private $peso;

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

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

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

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

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

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

    public function setIndicadoPor(string $indicado_por): PacienteBuilder
    {
        $this->indicado_por = $indicado_por;
        return $this;
    }

    public function setConvenio($convenio) : PacienteBuilder
    {
        $this->convenio = $convenio;
        return $this;
    }

    public function setAltura($altura) : PacienteBuilder
    {
        $this->altura = $altura;
        return $this;
    }

    public function setPeso($peso) : PacienteBuilder
    {
        $this->peso = $peso;
        return $this;
    }



    public function build() : Paciente
    {
        $paciente = new Paciente();
        if (isset($this->id)) {
            $paciente->setId($this->id);
        }
        if (isset($this->id_pessoa)) {
            $paciente->setIdPessoa($this->id_pessoa);
        }
        if (isset($this->adicionado_por)) {
            $paciente->setAdicionadoPor($this->adicionado_por);
        }
        if (isset($this->alterado_por)) {
            $paciente->setAlteradoPor($this->alterado_por);
        }
        if (isset($this->criado_em)) {
            $paciente->setCriadoEm($this->criado_em);
        }
        if (isset($this->alterado_em)) {
            $paciente->setAlteradoEm($this->alterado_em);
        }
        if (isset($this->indicado_por)) {
            $paciente->setIndicadoPor($this->indicado_por);
        }
        if (isset($this->convenio)) {
            $paciente->setConvenio($this->convenio);
        }
        if (isset($this->altura)) {
            $paciente->setAltura($this->altura);
        }
        if (isset($this->peso)) {
            $paciente->setPeso($this->peso);
        }
        return $paciente;
    }

}