text: var pages = pages || {};
  pages.estabelecimento = pages.estabelecimento || {};
  
  pages.estabelecimento.model = function () {
  
      var vmEstabelecimento = function (estabelecimento) {
          var self = this;
  
          self.estabelecimentoId = ko.observable();
          self.nome = ko.observable();
          self.email = ko.observable();
          self.descricao = ko.observable();        
          self.url = ko.observable();
          self.telefone = ko.observable();
          self.celular = ko.observable();
          self.instagram = ko.observable();
          self.facebook = ko.observable();
          self.dataCadastro = ko.observable();
          self.situacao = ko.observable();
          self.urlCompleta = ko.observable();
  
          if (estabelecimento) {
              self.estabelecimentoId(estabelecimento.estabelecimentoId);
              self.nome(estabelecimento.nome);
              self.email(estabelecimento.email);
              self.descricao(estabelecimento.descricao);
              self.url(estabelecimento.url);
              self.telefone(estabelecimento.telefone);
              self.celular(estabelecimento.celular);
              self.instagram(estabelecimento.instagram);
              self.facebook(estabelecimento.facebook);
              self.dataCadastro(estabelecimento.dataCadastro);
              self.situacao(estabelecimento.situacao);
              self.urlCompleta(URL_SITE + '/Login/Index/' + estabelecimento.url);
          }
      };    
  
      return {       
          vmEstabelecimento
      };
  }();
  var pages = pages || {};
  pages.estabelecimento = pages.estabelecimento || {};
  
  pages.estabelecimento.services = function () {  
  
      var obterTodos = function (estabelecimentoNomeUrl) {
          var url = pages.metadata.actionUrl("/api/estabelecimentos?url=" + estabelecimentoNomeUrl);
          return pages.dataServices.get(url);
      }
  
      var salvar = function (parametro) {
          var url = pages.metadata.actionUrl("/api/estabelecimentos");
          return pages.dataServices.postAjax(url, parametro);
      }
  
      var obterPorId = function (id) {
          var url = pages.metadata.actionUrl("/api/estabelecimentos/" + id);
          return pages.dataServices.get(url);
      }           
  
      var deletar = function (id) {
          var url = pages.metadata.actionUrl("/api/estabelecimentos/" + id);
          return pages.dataServices.deleteAjax(url);
      }  
  
      var atualizar = function (id, parametro) {
          var url = pages.metadata.actionUrl("/api/estabelecimentos/" + id);
          return pages.dataServices.putAjax(url, parametro);
      } 
  
      return {       
          obterTodos,
          obterPorId,
          atualizar,
          salvar,
          deletar
      };
  }();
  var pages = pages || {};
  pages.estabelecimento = pages.estabelecimento || {};
  pages.estabelecimento.model = pages.estabelecimento.model || {};
  pages.estabelecimento.services = pages.estabelecimento.services || {};
  
  pages.metadata = pages.metadata || {};
  pages.dataServices = pages.dataServices || {};
  pages.utils = pages.utils || {};
  
  pages.estabelecimento.visualizarViewModel = function () {   
      var model = pages.estabelecimento.model;
      var service = pages.estabelecimento.services;
      var id = window.location.href.split("/").lastOrDefault();
     
      ko.applyBindings(new function () {
          var self = this;       
          
          self.estabelecimento = ko.observable();
          self.usuarioLogado = ko.observable(new pages.menu.model.vmUsuarioLogado(getDataToken()));
          self.permiteVoltar = ko.observable(false);
  
          ko.computed(function () {
              if (self.usuarioLogado().isAdministrador() || self.usuarioLogado().isGerente()) {
                  self.permiteVoltar(true);
              } else {
                  self.permiteVoltar(false);
              }
          });
  
          self.init = function () {   
              let estabelecimentoId = self.usuarioLogado().isAdministrador() ? id : self.usuarioLogado().estabelecimentoId();
              self.obterEstabelecimentoPorId(estabelecimentoId);                      
          };
  
          self.obterEstabelecimentoPorId = function (estabelecimentoId) {  
              pages.dataServices.bloquearTela();
              service.obterPorId(estabelecimentoId).then(function (result) {
                  self.estabelecimento(new model.vmEstabelecimento(result.data));                             
              }).catch(function (result) {
                  console.log(result.data);          
              }).finally(function () {
                  pages.dataServices.desbloquearTela();
              });            
          };
  
          self.voltar = function () {
              pages.dataServices.bloquearTela();
              window.location.href = "/Estabelecimento/Index";
          };
  
          self.init();
  
      }, bindingBody);
  }();