<?php


namespace App\ViewModels\Perfil\PerfilDetailsViewModel;


use App\Utils\Builder;

class PerfilResponseDatabaseDetailsViewModelBuilder implements Builder
{
    protected $perfil_id;
    protected $perfil_nome;
    protected $permissao_id;
    protected $ativo;
    protected $endpoint_id;
    protected $endpoint_method;
    protected $endpoint_controller;
    protected $endpoint_action;
    protected $endpoint_path;

    /**
     * @param mixed $perfil_id
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setPerfilId($perfil_id)
    {
        $this->perfil_id = $perfil_id;
        return $this;
    }

    /**
     * @param mixed $perfil_nome
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setPerfilNome($perfil_nome)
    {
        $this->perfil_nome = $perfil_nome;
        return $this;
    }

    /**
     * @param mixed $permissao_id
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setPermissaoId($permissao_id)
    {
        $this->permissao_id = $permissao_id;
        return $this;
    }

    /**
     * @param mixed $ativo
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setAtivo($ativo)
    {
        $this->ativo = $ativo;
        return $this;
    }

    /**
     * @param mixed $endpoint_id
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setEndpointId($endpoint_id)
    {
        $this->endpoint_id = $endpoint_id;
        return $this;
    }

    /**
     * @param mixed $endpoint_method
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setEndpointMethod($endpoint_method)
    {
        $this->endpoint_method = $endpoint_method;
        return $this;
    }

    /**
     * @param mixed $endpoint_controller
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setEndpointController($endpoint_controller)
    {
        $this->endpoint_controller = $endpoint_controller;
        return $this;
    }

    /**
     * @param mixed $endpoint_action
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setEndpointAction($endpoint_action)
    {
        $this->endpoint_action = $endpoint_action;
        return $this;
    }

    /**
     * @param mixed $endpoint_path
     * @return PerfilResponseDatabaseDetailsViewModelBuilder
     */
    public function setEndpointPath($endpoint_path)
    {
        $this->endpoint_path = $endpoint_path;
        return $this;
    }

    public function build() : PerfilResponseDatabaseDetailsViewModel
    {
        $assistente_details_vm = new PerfilResponseDatabaseDetailsViewModel();
        $assistente_details_vm->setPerfilId($this->perfil_id);
        $assistente_details_vm->setPerfilNome($this->perfil_nome);
        $assistente_details_vm->setPermissaoId($this->permissao_id);
        $assistente_details_vm->setAtivo($this->ativo);
        $assistente_details_vm->setEndpointId($this->endpoint_id);
        $assistente_details_vm->setEndpointMethod($this->endpoint_method);
        $assistente_details_vm->setEndpointAction($this->endpoint_action);
        $assistente_details_vm->setEndpointController($this->endpoint_controller);
        $assistente_details_vm->setEndpointPath($this->endpoint_path);
        return $assistente_details_vm;
    }
}