<div>
  <div class="container pt-5 pb-5">
    <h1>Perguntas Frequentes</h1>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Para que serve esta página?</h4>
      <p>Este é um modelo para criar sua própria página de "Perguntas Frequentes". Ele foi gerado convertido
        para
        a língua portuguesa a partir da versão gerada como parte do gerador de códigos <a
          href="https://sailsjs.com/about">Sails</a>.
        Além de cumprir seu objetivo principal como um modelo, esta página funciona como um guia prático
        sobre o
        próprio gerador de códigos do Sails.</p>
      <p><small>
          Antes de implantar este aplicativo em produção, certifique-se de substituir o conteúdo desta página
          por
          perguntas e respostas reais que são relevantes para o seu projeto. Ou se você não precisa de um FAQ,
          basta excluir este arquivo completamente.
        </small></p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Além do Sails, de quais tecnologias, estruturas ou serviços esse aplicativo depende?</h4>
      <p>
        Este aplicativo inclui várias ferramentas e integrações que usamos frequentemente no topo do Sails.
        Eles
        funcionaram bem para nós no passado; permitindo que nos concentremos no desenvolvimento de novos
        recursos com o mínimo de sobrecarga.
        Alguns são arquivos que nós mesmos desenvolvemos, e o resto são serviços e estruturas de terceiros
        (3rd).
        Embora alguns deles exijam que você crie uma conta (ou obtenha uma chave de API, etc.), queremos
        enfatizar que incluímos apenas ferramentas confiáveis que nos sentimos confortáveis em usar em
        nossos
        próprios projetos e nos projetos de nossos clientes.
      </p>
      <ul class="pl-3 pl-sm-5">
        <li><a target="_blank" href="http://getbootstrap.com/docs/4.0/getting-started/introduction/"><strong>Bootstrap
              4</strong></a> - Biblioteca de Componentes para Front-end
        </li>
        <li><a target="_blank" href="http://fontawesome.io/icons/"><strong>Font Awesome 4</strong></a> -
          Ícones
        </li>
        <li><a target="_blank" href="https://vuejs.org/"><strong>Vue.js</strong></a> - Ferramenta para
          desenvolvimento de Front-end
        </li>
        <li><a target="_blank" href="https://npmjs.com/package/parasails"><strong>parasails.js</strong></a>
          -
          Camada fina de convenções agrupadas para uso do Vue.js (Vue2) com o Sails.js e SDK gerado
          dinamicamente para lidar com solicitações AJAX e/ou WebSocket do front-end para as ações em seu
          aplicativo Sails (Veja mais informações sobre o uso abaixo).
        </li>
        <li><a target="_blank" href="https://www.sendgrid.com/"><strong>Sendgrid</strong></a>* - API para
          envio
          de Emails
        </li>
        <li><a target="_blank" href="https://stripe.com/docs"><strong>Stripe</strong></a>* - API para gestão
          de
          Pagamentos
        </li>
      </ul>
      <p><small>* requer uma chave de API</small></p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Por que vejo espaços reservados como "NEW_APP_NAME" em todos os lugares? Qual é a melhor maneira de
        personalizá-los?</h4>
      <p>Como os projetos geralmente são gerados antes que os nomes de produtos e/ou empresas sejam
        finalizados,
        achamos que fazia mais sentido usar espaços reservados facilmente localizáveis e substituíveis do
        que
        solicitar um nome de aplicativo ou empresa no início. (É muito mais fácil encontrar/substituir
        "NEW_APP_NAME" sem conflitos do que encontrar/substituir uma palavra mais comumente usada.)</p>
      <p>Quando você tiver seu produto, nome da empresa e marca finalizados, aqui estão os espaços reservados
        que
        você deverá trocar:</p>
      <ul class="pl-3 pl-sm-5">
        <li><strong purpose="placeholder">NEW_APP_NAME</strong> - O Nome do seu produto de software.</li>
        <li><strong purpose="placeholder">NEW_APP_COMPANY_NAME</strong> - Esse espaço reservado é usado para
          o
          nome da entidade nos termos legais e na política de privacidade e pode ser substituído pelo nome
          da
          empresa por trás do seu aplicativo.
        </li>
        <li><strong purpose="placeholder">DATE_PRIVACY_POLICY_LAST_UPDATED</strong> - Substitua isso pela
          data
          em que sua Política de Privacidade foi atualizada (portanto, se você estiver trocando o nome da
          empresa, a data é hoje).
        </li>
        <li><strong purpose="placeholder">DATE_TERMS_OF_SERVICE_LAST_UPDATED</strong> - Substitua isso pela
          data
          em que seus Termos de Serviço foram atualizados (portanto, se você estiver trocando o nome da
          empresa, a data é hoje).
        </li>
        <li><strong purpose="placeholder">NEW_APP_COMPANY_ABOUT_HREF</strong> - Este é o link na seção de
          direitos autorais do rodapé. Você provavelmente vai querer trocá-lo por um link para a página
          sobre
          a sua empresa ou site de marketing.
        </li>
        <li>Espaço reservado para o Logotipo - Para usar sua marca personalizada, você pode simplesmente
          substituir o arquivo de imagem em <code>assets/images/logo.png</code> por uma imagem
          personalizada
          de mesmo nome, ou alterar a imagem <code>src</code> no cabeçalho em
          <code>views/layouts/layout.ejs</code>.
        </li>
      </ul>
      <blockquote><small>Apenas um alerta: os dois parágrafos anteriores farão muito menos sentido depois que
          você
          tiver feito uma localização/substituição em cada uma dessas palavras de espaço reservado.</small>
      </blockquote>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como configuro um novo método para ser usado com o cloud.js?</h4>
      <p>
        Depois de criar uma ação de controlador (controllers/*.js) com um dos comandos <code>sails generate
            page
            -nome-da-pagina-</code> ou <code>sails generate action</code> e adicioná-la às suas rotas
        (routes.js)
        (consulte os documentos <a target="_blank" href="https://sailsjs.com/documentation/concepts/routes">Sails.js
          para obter mais informações sobre como fazer isso), há apenas algumas etapas simples para
          adicioná-la</a> ao seu SDK <code>Cloud</code> global:
      </p>
      <ul class="pl-3 pl-sm-5">
        <li>Reconstrua o SDK personalizado deste aplicativo usando o comando <code>sails run
                scripts/rebuild-cloud-sdk</code>. (Isso regenerará automaticamente as definições de método em
          seu
          arquivo <code>assets/js/cloud.setup.js</code> com base em suas rotas configuradas.)
        </li>
        <li>Você pode então chamar quaisquer novas ações relevantes como "métodos de nuvem" em seu código de
          frontend (dentro de um arquivo *.js) assim: <code>await Cloud.doSomething.with({...})</code>
        </li>
        <li>Desta forma o Cloud.js irá buscar no arquivo cloud.setup.js pela rota doSomething a criará uma
          requisição HTTP passando o conteúdo do método with() como parâmetros de query.
        </li>
      </ul>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como faço para registrar uma nova página com parasails.js?</h4>
      <p>Para gerar arquivos para uma nova página (por exemplo, "hotels-overview"), execute:</p>
      <p><code>sails generate page hotels-overview</code></p>
      <p>Em seguida, você pode adicionar uma rota para a nova ação de exibição (view) para torná-la acessível
        a
        partir do navegador. Por exemplo:</p>
      <p><code>'GET /hotels': { action: 'view-hotels-overview' }</code></p>
      <p>Para registrar uma nova página sem o gerador, verifique se o elemento de nível superior da exibição
        que
        você deseja registrar tem uma propriedade <code>id</code> (por exemplo, <code>&lt;div
                id="my-new-page"&gt;...
                &lt;/div&gt;</code>). Em seguida, crie um novo arquivo JavaScript e inclua <code>parasails.registerPage('my-new-page',
                { /* options for the Vue.js instance */ }).</code> Para obter exemplos mais completos, pesquise
        em
        <code>assets/js/pages/</code>.</small>
      </p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>O que acontecerá com todos os estilos (css styles) em linha?</h4>
      <p>
        Como este aplicativo, inicialmente, usa a biblioteca css Bootstrap, queríamos deixar um pouco mais
        claro
        onde nossos estilos personalizados terminam e os estilos do Bootstrap começam.
        Sempre que possível, você verá <code>style="..."</code> no HTML. Se, por algum motivo, uma tag de
        estilo
        não funcionar (por exemplo, para consultas de mídia), você verá purpose=<code>"..."</code> no HTML e
        <code>[purpose='...']</code>
        no arquivo .less – adotamos essa abordagem, em vez de usar nomes de classe personalizados, para
        ajudar a
        evitar confusão sobre quais classes vêm do Bootstrap e quais nós mesmos adicionamos.
      </p>
      <p>Outro motivo: copiar/colar! Com os estilos embutidos, é muito mais fácil copiar HTML de uma página
        sem a
        necessidade de também duplicar estilos dos arquivos .less correspondentes.</p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como implantar na Heroku?</h4>
      <p>No painel <a target="_blank" href="https://dashboard.heroku.com">Heroku</a>, configure seu aplicativo
        para implantação automática a partir da ramificação (branch) de <code>deploy</code> do repositório
        GitHub deste projeto. Em seguida, a partir da linha de comando, execute <code>sails run
                deploy</code>.
      </p>
      <p>Para obter mais dicas de deploy, <a href="https://sailsjs.com/documentation/concepts/deployment">consulte
          este link</a>.</p>
      <p><strong>Nota para usuários Windows:</strong>o script associado ao comando deploy registrado no
        arquivo
        <code>package.json</code> foi escrito pelos desenvolvedores do Sails para uso no Linux, portanto,
        antes
        de executá-lo, altere-o.
      </p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Tenho mesmo que hospedar na Heroku?</h4>
      <p>De maneira nenhuma! Você pode implantar seu aplicativo <a target="_blank"
          href="https://sailsjs.com/documentation/concepts/deployment/hosting">em
          qualquer lugar que ofereça suporte a Node.js</a>.</p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como faço para verificar os endereços de e-mail do meu usuário?</h4>
      <p>Por padrão, a verificação de e-mail não é necessária para se inscrever, nem para quando um usuário
        existente altera seu endereço de e-mail na página da conta. Para habilitar uma etapa de verificação
        de
        e-mail para ambas as ações, abra <code>config/custom.js</code> e altere verifyEmailAddresses: false
        para
        <code>verifyEmailAddresses: true</code>
      </p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como termino de configurar o Sendgrid?</h4>
      <p>Para usar o Sendgrid, você precisará <a target="_blank" href="https://www.sendgrid.com/">se inscrever
          em
          uma conta</a>. (Embora este <em>seja</em> um serviço pago em níveis de uso mais altos, você deve ser
        capaz de usar o Sendgrid no desenvolvimento sem ter que fornecer nenhuma informação de cartão de
        crédito.)</p>
      <p>Depois de criar uma conta, você precisará adicionar a Chave Secreta da API do Sendgrid à configuração
        personalizada. (No desenvolvimento, isso será em config/<code>custom</code>.js ou em um arquivo
        <code>local.js</code>
        que você adicionar à sua pasta <code>config/</code>.
        Para sua implantação de preparo ou produção, convém defini-las usando variáveis de ambiente do
        sistema
        -- também conhecidas como "variáveis de configuração" na Heroku.)
      </p>
      <p>Se você já possui um domínio para seu aplicativo, pode seguir as instruções do próprio Sendgrid para
        configurar um domínio de envio.</p>
      <p>Caso contrário, para enviar e-mails deste aplicativo <em>sem</em> configurar um domínio de envio,
        você
        pode <a target="_blank" href="https://app.sendgrid.com/settings/sender_auth">verificar um único
          remetente</a>. Apenas certifique-se de definir <code>sails.config.custom.fromEmailAddress</code>
        para usar o e-mail verificado, ou haverá erros dos <em>endpoints</em> de API que tentam enviar
        e-mails.
      </p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como termino de configurar o Stripe?</h4>
      <p>Para usar o Stripe para o processamento de pagamentos do seu aplicativo, você precisará <a target="_blank"
          href="https://stripe.com">se inscrever em uma conta</a>.</p>
      <p>Depois de ter uma conta, você precisará incluir suas chaves públicas e privadas na configuração
        personalizada do seu aplicativo como sails.config.custom.stripePublishableKey e
        <code>sails.config.custom.stripeSecret.</code><code></code>
        No desenvolvimento, você pode adicionar suas chaves de teste ao config/custom.js ou em um arquivo
        <code>local.js</code>
        que você adiciona à sua pasta <code>config/</code>.<code></code>
      </p>
      <p>
        Em sua implantação de homologação ou produção, você desejará definir suas chaves de API usando
        variáveis
        de ambiente do sistema (também conhecidas como "variáveis de configuração" na Heroku) e precisará
        garantir que seu site atenda aos requisitos HTTPS do Stripe para que o Stripe Checkout funcione.
        Para obter mais informações, consulte Guia de checkout detalhado <a target="_blank"
          href="https://stripe.com/docs/checkout">Detailed
          Checkout</a>.
      </p>
    </div>
    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como faço para desabilitar ___________?</h4>
      <p class="pt-4 text-muted"><strong><em>Para desativar a estrutura do Bootstrap:</em></strong></p>
      <ul class="pl-3 pl-sm-5">
        <li>Excluir os arquivos da pasta/<code>depencies/bootstrap/</code></li>
        <li>No arquivo <code>tasks/pipeline.js</code>, apague
          <code>'dependencies/bootstrap/dependencies/**/*.js',</code>
          da seção
          <code>jsFilesToInject</code>
        </li>
      </ul>
      <p class="pt-4 text-muted"><strong><em>Para desativar o FontAwesome:</em></strong></p>
      <ul class="pl-3 pl-sm-5">
        <li>Exclua a pasta em <code>assets/dependencies/font-awesome-4/</code>.
          (Você provavelmente também vai querer pesquisar no projeto por "fa fa-" para verificar se há
          ícones
          remanescentes no HTML.)
        </li>
      </ul>
      <p class="pt-4 text-muted"><strong><em>Para trocar o Sendgrid:</em></strong></p>
      <p>Escolhemos o Sendgrid por causa de seu nível gratuito muito generoso (você pode enviar até 100
        e-mails
        por dia). Além disso, ele se integra facilmente, já existe há algum tempo (por isso é estável e faz
        um
        bom trabalho evitando filtros de spam) e é usado internamente em empresas como Slack e Medium.</p>
      <p>Está pronto para uso, mas se o Sendgrid não estiver configurado para este aplicativo, o formulário de
        contato e o fluxo de recuperação de senha falharão completamente, a menos que um endereço de e-mail
        terminado em "@example.com" seja usado. Felizmente, se você deseja usar este recurso,
        como <a target="_blank" href="https://stackshare.io/twilio-sendgrid">uma solução diferente para
          enviar
          e-mails automatizados o Twilio</a>.
        Para alternar para um serviço diferente do Sendgrid, você precisará fazer as seguintes alterações no
        código:</p>
      <ul class="pl-3 pl-sm-5">
        <li>Modifique o código em <code>api/helpers/send-template-email.js</code> para usar o serviço de
          e-mail
          de sua escolha.
        </li>
        <li>Em <code>api/hooks/custom/index.js</code>, remova os avisos relacionados ao Sendgrid.</li>
      </ul>
      <p class="pt-4 text-muted"><strong><em>Para remover ou substituir a integração do Stripe:</em></strong>
      </p>
      <p>Escolhemos o Stripe porque é o processador de pagamentos mais fácil de integrar do mercado.
        Suas taxas são aproximadamente as mesmas <a target="_blank" href="https://stackshare.io/stripe/alternatives">
          que
          seus
          concorrentes</a>,
        mas mesmo que esse não fosse o caso, o foco da Stripe na felicidade do desenvolvedor provavelmente
        compensaria.
        O Stripe processa pagamentos, descontos e muito mais para <a target="_blank"
          href="https://stripe.com/us/customers">centenas
          de milhares de empresas</a> em todo o mundo.</p>
      <p>
        Por padrão, os recursos relacionados ao faturamento são desabilitados automaticamente se você não
        tiver
        uma chave publica do Stripe e uma chave privada em sua configuração personalizada
        (sails.config.custom.stripePublishableKey e <code>sails.config.custom.stripeSecret</code>,
        respectivamente).<code></code> Seu aplicativo não será afetado negativamente ou aparecerá quebrado;
        ele
        simplesmente terá algum código estranho em lugares.

      </p>
      <ul class="pl-3 pl-sm-5">
        Se você não prevê a integração de recursos de faturamento em seu aplicativo e deseja remover esse
        código
        completamente, você pode fazer
        as seguintes alterações:
        <li>In the <code>User</code> model definition at <code>api/models/User.js</code>, remove the
          <code>stripeCustomerId</code>,
          <code>billingCardBrand</code>, <code>billingCardLast4</code>, <code>billingCardExpMonth</code>,
          and
          <code>billingCardExpYear</code> attribute definitions.
        </li>
        <li>Na ação "signup" em <code>api/controllers/entrance/signup.js</code>:
          <ul class="pl-3 pl-sm-5">
            <li>Remova a linha na parte superior que requer a dependência de Stripe</li>
            <li>Remova o bloco de código que cria um cliente Stripe. (Se você tiver problemas para
              encontrar
              onde isso acontece, leia os comentários).
            </li>
            <li>Na chamada para <code>User.create()</code>, remova a propriedade
              <code>stripeCustomerId</code>.
            </li>
          </ul>
        </li>
        <li>Na ação "confirmar e-mail" em <code>api/controllers/entrance/confirm-email.js</code>:
          <ul class="pl-3 pl-sm-5">
            <li>Remova a linha na parte superior que requer a dependência Stripe.</li>
            <li>Remova o bloco de código que lida com a criação/atualização de um cliente Stripe. (Se
              você
              tiver problemas para encontrar onde isso acontece, leia os comentários.)
            </li>
          </ul>
        </li>
        <li>Remova o <em>endpoint</em> do cartão de cobrança de atualização e todas as referências a ele
          fazendo
          o seguinte:
          <ul class="pl-3 pl-sm-5">
            <li>Exclua o arquivo em <code>api/controllers/account/update-billing-card.js</code>.</li>
            <li>Em <code>config/routes.js</code>, exclua a configuração de rota para <code>'PUT
                        /api/v1/account/update-billing-card'</code>.
            </li>
            <li>Em <code>assets/js/cloud.setup.js</code>, exclua o método <code>updateBillingCard</code>.
            </li>
            <li> Em <code>assets/js/pages/account/account-overview.page.js</code>, remova o método
              <code>clickStripeCheckoutButton</code>
            </li>
            <li>
              Em views/pages/account<code>/account-overview.ejs</code>, remova o HTML relacionado a
              faturamento.
            </li>
          </ul>
        </li>
        <li>Em <code>api/hooks/custom/index.js</code>, remova os avisos relacionados ao Stripe.</li>
        <li>Em <code>api/hooks/custom/index.js, remova sails.config.custom.enableBillingFeatures</code>
          <code>=!isMissingStripeConfig;</code>.
        </li>
      </ul>
    </div>

    <div>
      <hr class="mt-4 mb-4" />
      <h4>Como posso configurar as traduções?</h4>
      <p>
        Quando o navegador dos usuários acessa as páginas do Cuidado Cristão, ele informa ao Aplicativo qual idioma usar
        na tradução. Se já existem traduções para algum aplicativo de chave de tradução o apllicativo irá usa-lo, caso
        contrário, essa mesma chave será mostrada.
      </p>
      <p>
        Para adicionar, editar ou apenas conhecer traduções para algum idioma ou chave, verifique o arquivo
        <code>config/locales/two-letters-country-code.json</code>. <br>
        O arquivo padrão é o <code>config/locales/en.json</code>, mas isso pode ser alterado no arquivo
        <code>config/i18n.js</code>.
      </p>

    </div>

    <div>
      <hr class="mt-4 mb-4" />
      <h4>Onde posso pedir mais ajuda?</h4>
      <p>Se você tiver problemas, você poderá encontrar a resposta na documentação do <a target="_blank"
          href="http://sailsjs.com/documentation">Sails.js
        </a>. Se você não tem certeza sobre como proceder, ou está completamente perplexo, não deixe de conferir
        o endereço <a target="_blank" href="http://sailsjs.com/support">últimos recursos disponíveis</a>.
      </p>
      <p><strong>Nota para nativos da língua portuguesa:</strong><em>A RIZ | iko Softwarehouse pode ser seu
          facilitador neste processo.
          <a href="https://www.riziko.com.br/contato">Clique aqui para saber como</a></em></p>
    </div>
  </div>
</div>