<?php


namespace App\ViewModels\AgendaEspecialidade\AgendaEspecialidadeListingViewModel;


use App\Utils\Entity;

class AgendaEspecialidadeListingViewModel extends Entity
{
    protected $id;
    protected $data;
    protected $hora_inicio;
    protected $hora_final;
    protected $id_especialidade;
    protected $nome_especialidade;
    protected $id_agendamento;
    protected $id_paciente;
    protected $id_cliente;
    protected $cancelado_em;
    protected $id_consulta;
    protected $id_medico;
    protected $id_unidade;
    protected $nome_cliente;
    protected $nome_pet;

    public static function builder() : AgendaEspecialidadeListingViewModelBuilder
    {
        return new AgendaEspecialidadeListingViewModelBuilder;
    }

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

    /**
     * @param mixed $nome_especialidade
     * @return AgendaEspecialidadeListingViewModel
     */
    public function setNomeEspecialidade($nome_especialidade)
    {
        $this->nome_especialidade = $nome_especialidade;
        return $this;
    }

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

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

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

    /**
     * @param mixed $nome_cliente
     */
    public function setNomeCliente($nome_cliente): void
    {
        $this->nome_cliente = $nome_cliente;
    }

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

    /**
     * @param mixed $nome_pet
     */
    public function setNomePet($nome_pet): void
    {
        $this->nome_pet = $nome_pet;
    }

    public function getCanceladoEm(): string
    {
        return $this->cancelado_em;
    }

    public function setCanceladoEm(string $cancelado_em): void
    {
        $this->cancelado_em = $cancelado_em;
    }

    public function getId(): int
    {
        return $this->id;
    }

    public function getData(): string
    {
        return $this->data;
    }

    public function getHoraInicio(): string
    {
        return $this->hora_inicio;
    }

    public function getHoraFinal(): string
    {
        return $this->hora_final;
    }

    public function getIdTipoProcedimento(): int
    {
        return $this->id_tipo_procedimento;
    }

    public function getIdAgendamento(): int
    {
        return $this->id_agendamento;
    }

    public function getIdProcedimento(): int
    {
        return $this->id_procedimento;
    }

    public function getTipoProcedimento(): string
    {
        return $this->tipo_procedimento;
    }

    public function getProcedimento(): string
    {
        return $this->procedimento;
    }
    public function getIdPaciente(): int
    {
        return $this->id_paciente;
    }
    public function getIdCliente(): int
    {
        return $this->id_cliente;
    }

    public function setId(int $id): void
    {
        $this->id = $id;
    }

    public function setData(string $data): void
    {
        $this->data = $data;
    }

    public function setHoraInicio(string $hora_inicio): void
    {
        $this->hora_inicio = $hora_inicio;
    }

    public function setHoraFinal(string $hora_final): void
    {
        $this->hora_final = $hora_final;
    }

    public function setIdTipoProcedimento(int $id_tipo_procedimento): void
    {
        $this->id_tipo_procedimento = $id_tipo_procedimento;
    }

    public function setIdAgendamento(int $id_agendamento): void
    {
        $this->id_agendamento = $id_agendamento;
    }

    public function setIdProcedimento(int $id_procedimento): void
    {
        $this->id_procedimento = $id_procedimento;
    }

    public function setTipoProcedimento(string $tipo_procedimento): void
    {
        $this->tipo_procedimento = $tipo_procedimento;
    }

    public function setProcedimento(string $procedimento): void
    {
        $this->procedimento = $procedimento;
    }

    public function setIdPaciente(int $id_paciente): void
    {
        $this->id_paciente = $id_paciente;
    }
    
    public function setIdCliente(int $id_cliente): void
    {
        $this->id_cliente = $id_cliente;
    }

    public function getIdConsulta(): int
    {
        return $this->id_consulta;
    }

    public function setIdConsulta(int $id_consulta): void
    {
        $this->id_consulta = $id_consulta;
    }

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

    /**
     * @param mixed $id_medico
     */
    public function setIdMedico($id_medico): void
    {
        $this->id_medico = $id_medico;
    }

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

    /**
     * @param mixed $id_unidade
     */
    public function setIdUnidade($id_unidade): void
    {
        $this->id_unidade = $id_unidade;
    }

}