<?php

namespace App\ViewModels\Consulta\ConsultaListingViewModel;

use App\Utils\Builder;

class ConsultaListingViewModelBuilder implements Builder {
	protected $id_agenda;
	protected $id_unidade;
	protected $id_agendamento;
	protected $id_consulta;
	protected $id_procedimento;
	protected $id_requisicao;
	protected $req_st;
	protected $tipo_anamnese;
	protected $procedimento;
	protected $data;
	protected $hora_inicio;
	protected $hora_fim;
	protected $consulta_titulo;
	protected $consulta_descricao;
	protected $id_pet;
	protected $nome_pet;
	protected $id_raca;
	protected $nome_raca;
	protected $status;
	protected $unidade_descricao;
	protected $id_medico;
	protected $id_assistente;
	protected $nome_medico;
	protected $nome_assistente;
	protected $status_sala;

	public function build(): ConsultaListingViewModel {

		$consulta_details_vm = new ConsultaListingViewModel();
		$consulta_details_vm->setIdAgendamento( $this->id_agendamento );
		$consulta_details_vm->setIdConsulta( $this->id_consulta );
		$consulta_details_vm->setIdProcedimento( $this->id_procedimento );
		$consulta_details_vm->setProcedimento( $this->procedimento );
		$consulta_details_vm->setIdRequisicao( $this->id_requisicao );
		$consulta_details_vm->setReqst( $this->req_st );
		$consulta_details_vm->setTipoAnamnese( $this->tipo_anamnese );
		$consulta_details_vm->setData( $this->data );
		$consulta_details_vm->setHoraInicio( $this->hora_inicio );
		$consulta_details_vm->setHoraFim( $this->hora_fim );
		$consulta_details_vm->setConsultaTitulo( $this->consulta_titulo );
		$consulta_details_vm->setConsultaDescricao( $this->consulta_descricao );
		$consulta_details_vm->setIdPet( $this->id_pet );
		$consulta_details_vm->setIdAgenda( $this->id_agenda );
		$consulta_details_vm->setIdUnidade( $this->id_unidade );
		$consulta_details_vm->setNomePet( $this->nome_pet );
		$consulta_details_vm->setIdRaca( $this->id_raca );
		$consulta_details_vm->setNomeRaca( $this->nome_raca );
		$consulta_details_vm->setStatus( $this->status );
		$consulta_details_vm->setUnidadeDescricao( $this->unidade_descricao );
		$consulta_details_vm->setIdMedico( $this->id_medico );
		$consulta_details_vm->setIdAssistente( $this->id_assistente );
		$consulta_details_vm->setNomeMedico( $this->nome_medico );
		$consulta_details_vm->setNomeAssistente( $this->nome_assistente );
		$consulta_details_vm->setStatusSala( $this->status_sala );
		return $consulta_details_vm;

	}

    public function setStatusSala($status_sala)
    {
        $this->status_sala = $status_sala;
        return $this;
    }

	/**
	 *
	 * @param mixed $unidade_descricao
	 * @return ConsultaListingViewModelBuilder
	 */
	public function setUnidadeDescricao($unidade_descricao): ConsultaListingViewModelBuilder {

		$this->unidade_descricao = $unidade_descricao;
		return $this;

	}

	/**
	 *
	 * @param mixed $status
	 * @return ConsultaListingViewModelBuilder
	 */
	public function setStatus($status): ConsultaListingViewModelBuilder {

		$this->status = $status;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_pet
	 * @return ConsultaListingViewModelBuilder
	 */
	public function setIdPet($id_pet): ConsultaListingViewModelBuilder {

		$this->id_pet = $id_pet;
		return $this;

	}

	/**
	 *
	 * @param mixed $nome_pet
	 * @return ConsultaListingViewModelBuilder
	 */
	public function setNomePet($nome_pet): ConsultaListingViewModelBuilder {

		$this->nome_pet = $nome_pet;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_raca
	 * @return ConsultaListingViewModelBuilder
	 */
	public function setIdRaca($id_raca): ConsultaListingViewModelBuilder {

		$this->id_raca = $id_raca;
		return $this;

	}

	/**
	 *
	 * @param mixed $nome_raca
	 * @return ConsultaListingViewModelBuilder
	 */
	public function setNomeRaca($nome_raca): ConsultaListingViewModelBuilder {

		$this->nome_raca = $nome_raca;
		return $this;

	}

	public function setIdAgendamento($id_agendamento): ConsultaListingViewModelBuilder {

		$this->id_agendamento = $id_agendamento;
		return $this;

	}

	public function setIdConsulta($id_consulta): ConsultaListingViewModelBuilder {

		$this->id_consulta = $id_consulta;
		return $this;

	}

	public function setIdProcedimento($id_procedimento): ConsultaListingViewModelBuilder {

		$this->id_procedimento = $id_procedimento;
		return $this;

	}

	public function setProcedimento($procedimento): ConsultaListingViewModelBuilder {

		$this->procedimento = $procedimento;
		return $this;

	}

	public function setHoraInicio($hora_inicio): ConsultaListingViewModelBuilder {

		$this->hora_inicio = $hora_inicio;
		return $this;

	}

	public function setHoraFim($hora_fim): ConsultaListingViewModelBuilder {

		$this->hora_fim = $hora_fim;
		return $this;

	}

	public function setConsultaTitulo($consulta_titulo): ConsultaListingViewModelBuilder {

		$this->consulta_titulo = $consulta_titulo;
		return $this;

	}

	public function setConsultaDescricao($consulta_descricao): ConsultaListingViewModelBuilder {

		$this->consulta_descricao = $consulta_descricao;
		return $this;

	}

	public function setData($data): ConsultaListingViewModelBuilder {

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

	}

	/**
	 *
	 * @param mixed $id_medico
	 */
	public function setIdMedico($id_medico): ConsultaListingViewModelBuilder {

		$this->id_medico = $id_medico;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_assistente
	 */
	public function setIdAssistente($id_assistente): ConsultaListingViewModelBuilder {

		$this->id_assistente = $id_assistente;
		return $this;

	}

	/**
	 *
	 * @param mixed $nome_medico
	 */
	public function setNomeMedico($nome_medico): ConsultaListingViewModelBuilder {

		$this->nome_medico = $nome_medico;
		return $this;

	}

	/**
	 *
	 * @param mixed $nome_assistente
	 */
	public function setNomeAssistente($nome_assistente): ConsultaListingViewModelBuilder {

		$this->nome_assistente = $nome_assistente;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_agenda
	 */
	public function setIdAgenda($id_agenda): ConsultaListingViewModelBuilder {

		$this->id_agenda = $id_agenda;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_unidade
	 */
	public function setIdUnidade($id_unidade): ConsultaListingViewModelBuilder {

		$this->id_unidade = $id_unidade;
		return $this;

	}
	
	/**
	 * @param mixed $id_requisicao
	 */
	public function setIdRequisicao($id_requisicao): ConsultaListingViewModelBuilder {

		$this->id_requisicao = $id_requisicao;
		return $this;
	}


	/**
	 * @param mixed $rq_st
	 */
	public function setReqst($req_st): ConsultaListingViewModelBuilder {

		$this->req_st = $req_st;
		return $this;
	}
	/**
	 * @param mixed $tipo_anamnese
	 */
	public function setTipoAnamnese($tipo_anamnese): ConsultaListingViewModelBuilder {

		$this->tipo_anamnese = $tipo_anamnese;
		return $this;
	}





}