<?php
namespace App\Entities\PreAgendamento;

use App\Utils\Builder;
use App\Utils\Entity;

class PreAgendamentoBuilder implements Builder
{
    protected $id;
    protected $id_agenda_especialidade;
    protected $id_especialidade;
    protected $cliente_nome;
    protected $cliente_telefone;
    protected $criado_por;
    protected $alterado_por;
    protected $status;

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

    /**
     * @param mixed $id_agenda_especialidade
     * @return PreAgendamentoBuilder
     */
    public function setIdAgendaEspecialidade($id_agenda_especialidade)
    {
        $this->id_agenda_especialidade = $id_agenda_especialidade;
        return $this;
    }


    public function setClienteNome($cliente_nome)
    {
        $this->cliente_nome = $cliente_nome;
        return $this;
    }

    public function setClienteTelefone($cliente_telefone)
    {
        $this->cliente_telefone = $cliente_telefone;
        return $this;
    }

    public function setCriadoPor($criado_por)
    {
        $this->criado_por = $criado_por;
        return $this;
    }

    public function setAlteradoPor($alterado_por)
    {
        $this->alterado_por = $alterado_por;
        return $this;
    }

    public function setStatus($status)
    {
        $this->status = $status;
        return $this;
    }

    public function setIdEspecialidade($id_especialidade)
    {
        $this->id_especialidade = $id_especialidade;
        return $this;
    }


    public function build() : PreAgendamento
    {
        $exame = new PreAgendamento();
        if (isset($this->id)) {
            $exame->setId($this->id);
        }
        if (isset($this->id_agenda_especialidade)) {
            $exame->setIdAgendaEspecialidade($this->id_agenda_especialidade);
        }
        if (isset($this->id_especialidade)) {
            $exame->setIdEspecialidade($this->id_especialidade);
        }
        if (isset($this->cliente_nome)) {
            $exame->setClienteNome($this->cliente_nome);
        }
        if (isset($this->cliente_telefone)) {
            $exame->setClienteTelefone($this->cliente_telefone);
        }
        if (isset($this->criado_por)) {
            $exame->setCriadoPor($this->criado_por);
        }
        if (isset($this->alterado_por)) {
            $exame->setAlteradoPor($this->alterado_por);
        }
        if (isset($this->status)) {
            $exame->setStatus($this->status);
        }
        return $exame;
    }
}