<?php

namespace App\ViewModels\ProcedimentoValor\ProcedimentoValorDetailsViewModel;

use App\Utils\Builder;
use App\ViewModels\ProcedimentoValor\ProcedimentoValorDetailsViewModel\ProcedimentoValorDetailsViewModel;

class ProcedimentoValorDetailsViewModelBuilder implements Builder {
	protected $id;
	protected $id_convenio_procedimento;
	protected $valor;
	protected $data_inicio;
	protected $data_fim;
	protected $valor_interno;
	protected $valor_repasse_medico;
	protected $id_convenio;
	protected $descricao_convenio;
	protected $codigo_convenio;
	protected $id_procedimento;
	protected $descricao_procedimento;
	protected $id_unidade;
	protected $descricao_unidade;
	protected $status;
	protected $descricao_tipo_procedimento;

    /**
     * @return mixed
     */
    public function getValorRepasseMedico()
    {
        return $this->valor_repasse_medico;
    }

    /**
     * @param mixed $valor_repasse_medico
     * @return ProcedimentoValorDetailsViewModelBuilder
     */
    public function setValorRepasseMedico($valor_repasse_medico)
    {
        $this->valor_repasse_medico = $valor_repasse_medico;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getDescricaoTipoProcedimento()
    {
        return $this->descricao_tipo_procedimento;
    }

    /**
     * @param mixed $descricao_tipo_procedimento
     * @return ProcedimentoValorDetailsViewModelBuilder
     */
    public function setDescricaoTipoProcedimento($descricao_tipo_procedimento)
    {
        $this->descricao_tipo_procedimento = $descricao_tipo_procedimento;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * @param mixed $status
     * @return ProcedimentoValorDetailsViewModelBuilder
     */
    public function setStatus($status)
    {
        $this->status = $status;
        return $this;
    }



	/**
	 *
	 * @return mixed
	 */
	public function getIdUnidade() {

		return $this->id_unidade;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getDescricaoUnidade() {

		return $this->descricao_unidade;

	}

	/**
	 *
	 * @param mixed $descricao_unidade
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setDescricaoUnidade($descricao_unidade) {

		$this->descricao_unidade = $descricao_unidade;
		return $this;

	}

	/**
	 *
	 * @param mixed $id_unidade
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setIdUnidade($id_unidade) {

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

	}

	/**
	 *
	 * @return mixed
	 */
	public function getIdConvenio() {

		return $this->id_convenio;

	}

	/**
	 *
	 * @param mixed $id_convenio
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setIdConvenio($id_convenio) {

		$this->id_convenio = $id_convenio;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getDescricaoConvenio() {

		return $this->descricao_convenio;

	}

	/**
	 *
	 * @param mixed $descricao_convenio
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setDescricaoConvenio($descricao_convenio) {

		$this->descricao_convenio = $descricao_convenio;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getCodigoConvenio() {

		return $this->codigo_convenio;

	}

	/**
	 *
	 * @param mixed $codigo_convenio
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setCodigoConvenio($codigo_convenio) {

		$this->codigo_convenio = $codigo_convenio;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getIdProcedimento() {

		return $this->id_procedimento;

	}

	/**
	 *
	 * @param mixed $id_procedimento
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setIdProcedimento($id_procedimento) {

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

	}

	/**
	 *
	 * @return mixed
	 */
	public function getDescricaoProcedimento() {

		return $this->descricao_procedimento;

	}

	/**
	 *
	 * @param mixed $descricao_procedimento
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setDescricaoProcedimento($descricao_procedimento) {

		$this->descricao_procedimento = $descricao_procedimento;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getId() {

		return $this->id;

	}

	/**
	 *
	 * @param mixed $id
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setId($id) {

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

	}

	/**
	 *
	 * @return mixed
	 */
	public function getIdConvenioProcedimento() {

		return $this->id_convenio_procedimento;

	}

	/**
	 *
	 * @param mixed $id_convenio_procedimento
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setIdConvenioProcedimento($id_convenio_procedimento) {

		$this->id_convenio_procedimento = $id_convenio_procedimento;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getValor() {

		return $this->valor;

	}

	/**
	 *
	 * @param mixed $valor
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setValor($valor) {

		$this->valor = $valor;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getValorInterno() {

		return $this->valor_interno;

	}

	/**
	 *
	 * @param mixed $valor
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setValorInterno($valorInterno) {

		$this->valor_interno = $valorInterno;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getDataInicio() {

		return $this->data_inicio;

	}

	/**
	 *
	 * @param mixed $data_inicio
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setDataInicio($data_inicio) {

		$this->data_inicio = $data_inicio;
		return $this;

	}

	/**
	 *
	 * @return mixed
	 */
	public function getDataFim() {

		return $this->data_fim;

	}

	/**
	 *
	 * @param mixed $data_fim
	 * @return ProcedimentoValorDetailsViewModelBuilder
	 */
	public function setDataFim($data_fim) {

		$this->data_fim = $data_fim;
		return $this;

	}

	public function build(): ProcedimentoValorDetailsViewModel {

		$procedimento_details_vm = new ProcedimentoValorDetailsViewModel();
		$procedimento_details_vm->setid( $this->id );
		$procedimento_details_vm->setIdConvenioProcedimento( $this->id_convenio_procedimento );
		$procedimento_details_vm->setValor( $this->valor );
		$procedimento_details_vm->setValorInterno( $this->valor_interno );
		$procedimento_details_vm->setValorRepasseMedico( $this->valor_repasse_medico );
		$procedimento_details_vm->setDataInicio( $this->data_inicio );
		$procedimento_details_vm->setDataFim( $this->data_fim );
		$procedimento_details_vm->setIdConvenio( $this->id_convenio );
		$procedimento_details_vm->setDescricaoConvenio( $this->descricao_convenio );
		$procedimento_details_vm->setCodigoConvenio( $this->codigo_convenio );
		$procedimento_details_vm->setIdProcedimento( $this->id_procedimento );
		$procedimento_details_vm->setDescricaoProcedimento( $this->descricao_procedimento );
		$procedimento_details_vm->setIdUnidade( $this->id_unidade );
		$procedimento_details_vm->setDescricaoUnidade( $this->descricao_unidade );
		$procedimento_details_vm->setStatus( $this->status );
		$procedimento_details_vm->setDescricaoTipoProcedimento( $this->descricao_tipo_procedimento );

		return $procedimento_details_vm;

	}

}