<?php

namespace App\ViewModels\Usuario\UsuarioDetailsViewModel;

use App\Utils\Entity;

class UsuarioDetailsViewModel extends Entity
{
    protected $nome;
    protected $foto;
    protected $tipo;
    protected $telefone_1;
    protected $telefone_2;
    protected $cpf;
    protected $rg;
    protected $data_nascimento;
    protected $genero;
    protected $cep;
    protected $logradouro;
    protected $bairro;
    protected $numero;
    protected $complemento;
    protected $referencias;
    protected $cidade;
    protected $estado;
    protected $permissoes;
    protected $cliente_id;
    protected $medico_id;
    protected $assistente_id;
    protected $paciente_id;

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

    /**
     * @return string
     */
    public function getNome(): string
    {
        return $this->nome;
    }

    /**
     * @return string
     */
    public function getTelefone1(): string
    {
        return $this->telefone_1;
    }

    /**
     * @return string
     */
    public function getTelefone2(): string
    {
        return $this->telefone_2;
    }

    /**
     * @return string
     */
    public function getCpf(): string
    {
        return $this->cpf;
    }

    /**
     * @return string
     */
    public function getRg(): string
    {
        return $this->rg;
    }

    /**
     * @return string
     */
    public function getDataNascimento(): string
    {
        return $this->data_nascimento;
    }

    /**
     * @return string
     */
    public function getGenero(): string
    {
        return $this->genero;
    }

    /**
     * @return string
     */
    public function getCep(): string
    {
        return $this->cep;
    }

    /**
     * @return string
     */
    public function getLogradouro(): string
    {
        return $this->logradouro;
    }

    /**
     * @return string
     */
    public function getBairro(): string
    {
        return $this->bairro;
    }

    /**
     * @return string
     */
    public function getNumero(): string
    {
        return $this->numero;
    }

    /**
     * @return string
     */
    public function getComplemento(): string
    {
        return $this->complemento;
    }

    /**
     * @return string
     */
    public function getReferencias(): string
    {
        return $this->referencias;
    }

    /**
     * @return string
     */
    public function getCidade(): string
    {
        return $this->cidade;
    }

    /**
     * @return string
     */
    public function getEstado(): string
    {
        return $this->estado;
    }

    /**
     * @param string $nome
     */
    public function setNome(string $nome): void
    {
        $this->nome = $nome;
    }

    /**
     * @param string $telefone_1
     */
    public function setTelefone1(string $telefone_1): void
    {
        $this->telefone_1 = $telefone_1;
    }

    /**
     * @param string $telefone_2
     */
    public function setTelefone2(string $telefone_2): void
    {
        $this->telefone_2 = $telefone_2;
    }

    /**
     * @param string $cpf
     */
    public function setCpf(string $cpf): void
    {
        $this->cpf = $cpf;
    }

    /**
     * @param string $rg
     */
    public function setRg(string $rg): void
    {
        $this->rg = $rg;
    }

    /**
     * @param string $data_nascimento
     */
    public function setDataNascimento(string $data_nascimento): void
    {
        $this->data_nascimento = $data_nascimento;
    }

    /**
     * @param string $genero
     */
    public function setGenero(string $genero): void
    {
        $this->genero = $genero;
    }

    /**
     * @param string $cep
     */
    public function setCep(string $cep): void
    {
        $this->cep = $cep;
    }

    /**
     * @param string $logradouro
     */
    public function setLogradouro(string $logradouro): void
    {
        $this->logradouro = $logradouro;
    }

    /**
     * @param string $bairro
     */
    public function setBairro(string $bairro): void
    {
        $this->bairro = $bairro;
    }

    /**
     * @param string $numero
     */
    public function setNumero(string $numero): void
    {
        $this->numero = $numero;
    }

    /**
     * @param string $complemento
     */
    public function setComplemento(string $complemento): void
    {
        $this->complemento = $complemento;
    }

    /**
     * @param string $referencias
     */
    public function setReferencias(string $referencias): void
    {
        $this->referencias = $referencias;
    }

    /**
     * @param string $cidade
     */
    public function setCidade(string $cidade): void
    {
        $this->cidade = $cidade;
    }

    /**
     * @param string $estado
     */
    public function setEstado(string $estado): void
    {
        $this->estado = $estado;
    }

    public function getFoto()
    {
        return $this->foto;
    }

    public function setFoto($foto): void
    {
        $this->foto = $foto;
    }

    /**
     * @return string
     */
    public function getTipo(): string
    {
        return $this->tipo;
    }

    /**
     * @param string $tipo
     */
    public function setTipo(string $tipo): void
    {
        $this->tipo = $tipo;
    }

    /**
     * @return array
     */
    public function getPermissoes(): array
    {
        return $this->permissoes;
    }

    /**
     * @param array $permissoes
     */
    public function setPermissoes(array $permissoes): void
    {
        $this->permissoes = $permissoes;
    }


    public function setClienteId($cliente_id)
    {
        $this->cliente_id = $cliente_id;
    }
    public function setMedicoId($medico_id)
    {
        $this->medico_id = $medico_id;
    }
    public function setAssistenteId($assistente_id)
    {
        $this->assistente_id = $assistente_id;
    }
    public function setPacienteId($paciente_id)
    {
        $this->paciente_id = $paciente_id;
    }

}
