<?php

namespace app\ViewModels\AgendaMedico\AgendaMedicoDetailsAgenda;

use App\Utils\Builder;

class AgendaMedicoDetailAgendaViewModelBuilder implements Builder {
	protected $id;
	protected $idUnidade;
	protected $idEspecialidade;
	protected $idStatus;
	protected $petId;
	protected $data;
	protected $horaInicio;
	protected $horaFinal;
	protected $idAgendaEspecialidade;
	protected $idRequisicaoProcedimento;
	protected $idPet;
	protected $idCliente;
	protected $petNome;
	protected $clienteNome;
	protected $telefone;
	protected $observacao;
	protected $encaixe;

	public function build(): AgendaMedicoDetailAgendaViewModel {

		$agenda = new AgendaMedicoDetailAgendaViewModel();

		$agenda->setId( $this->id );
		$agenda->setIdUnidade( $this->idUnidade );
		$agenda->setIdStatus( $this->idStatus );
		$agenda->setIdEspecialidade( $this->idEspecialidade );
		$agenda->setPetId( $this->petId );
		$agenda->setData( $this->data );
		$agenda->setHoraInicio( $this->horaInicio );
		$agenda->setHoraFinal( $this->horaFinal );
		$agenda->setIdAgendaEspecialidade( $this->idAgendaEspecialidade );
		$agenda->setIdRequisicaoProcedimento( $this->idRequisicaoProcedimento );
		$agenda->setIdPet( $this->idPet );
		$agenda->setIdCliente( $this->idCliente );
		$agenda->setPetNome( $this->petNome );
		$agenda->setClienteNome( $this->clienteNome );
		$agenda->setTelefone( $this->telefone );
		$agenda->setObservacao( $this->observacao );
		$agenda->setEncaixe( $this->encaixe );

		return $agenda;

	}

	/**
	 *
	 * @param mixed $id
	 */
	public function setId($id): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->id = $id;
		return $this;

	}

	/**
	 *
	 * @param mixed $idUnidade
	 */
	public function setIdUnidade($idUnidade): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idUnidade = $idUnidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $idStatus
	 */
	public function setIdStatus($idStatus): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idStatus = $idStatus;
		return $this;

	}

	/**
	 *
	 * @param mixed $idEspecialidade
	 */
	public function setIdEspecialidade($idEspecialidade): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idEspecialidade = $idEspecialidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $petId
	 */
	public function setPetId($petId): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->petId = $petId;
		return $this;

	}

	/**
	 *
	 * @param mixed $data
	 */
	public function setData($data): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->data = $data;
		return $this;

	}

	/**
	 *
	 * @param mixed $horaInicio
	 */
	public function setHoraInicio($horaInicio): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->horaInicio = $horaInicio;
		return $this;

	}

	/**
	 *
	 * @param mixed $horaFinal
	 */
	public function setHoraFinal($horaFinal): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->horaFinal = $horaFinal;
		return $this;

	}

	/**
	 *
	 * @param mixed $idAgendaEspecialidade
	 */
	public function setIdAgendaEspecialidade($idAgendaEspecialidade): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idAgendaEspecialidade = $idAgendaEspecialidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $idRequisicaoProcedimento
	 */
	public function setIdRequisicaoProcedimento($idRequisicaoProcedimento): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idRequisicaoProcedimento = $idRequisicaoProcedimento;
		return $this;

	}

	/**
	 *
	 * @param mixed $idPet
	 */
	public function setIdPet($idPet): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idPet = $idPet;
		return $this;

	}

	/**
	 *
	 * @param mixed $idCliente
	 */
	public function setIdCliente($idCliente): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->idCliente = $idCliente;
		return $this;

	}

	/**
	 *
	 * @param mixed $petNome
	 */
	public function setPetNome($petNome): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->petNome = $petNome;
		return $this;

	}

	/**
	 *
	 * @param mixed $clienteNome
	 */
	public function setClienteNome($clienteNome): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->clienteNome = $clienteNome;
		return $this;

	}

	/**
	 *
	 * @param mixed $telefone
	 */
	public function setTelefone($telefone): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->telefone = $telefone;
		return $this;

	}

	/**
	 *
	 * @param mixed $observacao
	 */
	public function setObservacao($observacao): AgendaMedicoDetailAgendaViewModelBuilder {

		$this->observacao = $observacao;
		return $this;

	}

    /**
     * @param mixed $encaixe
     * @return AgendaMedicoDetailAgendaViewModelBuilder
     */
    public function setEncaixe($encaixe)
    {
        $this->encaixe = $encaixe;
        return $this;
    }



}

