<?php namespace App\ViewModels\PreAgendamento\PreAgendamentoDetailsViewModel;


use App\Utils\Builder;

class PreAgendamentoDetailsViewModelBuilder implements Builder
{
    protected $pre_agendamento_id;
    protected $id_agenda_especialidade;
    protected $cliente_nome;
    protected $cliente_telefone;
    protected $id_especialidade;
    protected $descricao_especialidade;
    protected $status_id;
    protected $status_descricao;
    protected $agenda_hora_inicio;
    protected $agenda_hora_final;
    protected $agenda_data;

    /**
     * @param mixed $pre_agendamento_id
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setPreAgendamentoId($pre_agendamento_id)
    {
        $this->pre_agendamento_id = $pre_agendamento_id;
        return $this;
    }

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

    /**
     * @param mixed $cliente_nome
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setClienteNome($cliente_nome)
    {
        $this->cliente_nome = $cliente_nome;
        return $this;
    }

    /**
     * @param mixed $cliente_telefone
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setClienteTelefone($cliente_telefone)
    {
        $this->cliente_telefone = $cliente_telefone;
        return $this;
    }

    /**
     * @param mixed $id_especialidade
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setIdEspecialidade($id_especialidade)
    {
        $this->id_especialidade = $id_especialidade;
        return $this;
    }

    /**
     * @param mixed $descricao_especialidade
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setDescricaoEspecialidade($descricao_especialidade)
    {
        $this->descricao_especialidade = $descricao_especialidade;
        return $this;
    }

    /**
     * @param mixed $status_id
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setStatusId($status_id)
    {
        $this->status_id = $status_id;
        return $this;
    }

    /**
     * @param mixed $status_descricao
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setStatusDescricao($status_descricao)
    {
        $this->status_descricao = $status_descricao;
        return $this;
    }

    /**
     * @param mixed $agenda_hora_inicio
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setAgendaHoraInicio($agenda_hora_inicio)
    {
        $this->agenda_hora_inicio = $agenda_hora_inicio;
        return $this;
    }

    /**
     * @param mixed $agenda_hora_final
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setAgendaHoraFinal($agenda_hora_final)
    {
        $this->agenda_hora_final = $agenda_hora_final;
        return $this;
    }

    /**
     * @param mixed $agenda_data
     * @return PreAgendamentoDetailsViewModelBuilder
     */
    public function setAgendaData($agenda_data)
    {
        $this->agenda_data = $agenda_data;
        return $this;
    }

    public function build() : PreAgendamentoDetailsViewModel
    {
        $procedimento_details_vm = new PreAgendamentoDetailsViewModel();
        $procedimento_details_vm->setPreAgendamentoId($this->pre_agendamento_id);
        $procedimento_details_vm->setIdAgendaEspecialidade($this->pre_agendamento_id);
        $procedimento_details_vm->setClienteNome($this->cliente_nome);
        $procedimento_details_vm->setClienteTelefone($this->cliente_telefone);
        $procedimento_details_vm->setIdEspecialidade($this->id_especialidade);
        $procedimento_details_vm->setDescricaoEspecialidade($this->descricao_especialidade);
        $procedimento_details_vm->setStatusId($this->status_id);
        $procedimento_details_vm->setStatusDescricao($this->status_descricao);
        $procedimento_details_vm->setAgendaHoraInicio($this->agenda_hora_inicio);
        $procedimento_details_vm->setAgendaHoraFinal($this->agenda_hora_final);
        $procedimento_details_vm->setAgendaData($this->agenda_data);
        return $procedimento_details_vm;
    }


}