# Publicação WEB (Unity WebGL) no cPanel

Este guia é para a versão WebGL gerada pelo Unity, pronta para rodar em subpasta dentro do `public_html`.

## 0) Saída esperada
Após export WebGL, você vai subir o conteúdo de:
- `web-build/`  -->  `public_html/eventsappquest/`

A URL final (ajuste o domínio):
- `https://SEU-DOMINIO/eventsappquest/index.html`

## 1) Cenário Web: depende ou não de banco?
**Não depende de backend/DB real para o fluxo de teste atual.**

O “Web” roda com:
- dados mock em memória (`MockWebDataService`)
- persistência local (staging/instalação) via `PlayerPrefs` e JSON em `Application.persistentDataPath`

Se você quiser “configurar” banco na etapa de instalação, isso é tratado como preenchimento de campos, não como conexão real nesta versão.

## 2) Export WebGL (sem abrir Editor)
Use o entry point que adicionamos em `Assets/Editor/WebGL/WebGLBuildEntry.cs`.

Script disponível:
- `scripts/export_webgl_batchmode.zsh`

### 2.1) Pré-requisito
Você precisa ter o Unity instalado (para export WebGL). O método é **batchmode**, então não abre o Editor.

### 2.2) Como rodar (exemplo)
1. Ajuste a variável `UNITY_EXECUTABLE` no comando (ou exporte antes).
2. Rode:

```bash
export UNITY_EXECUTABLE="/Applications/Unity/Hub/Editor/2021.3.*/Unity.app/Contents/MacOS/Unity"
./scripts/export_webgl_batchmode.zsh
```

O script gera/atualiza a pasta:
- `web-build/`

## 3) Patch opcional para subpasta
Em geral, a build Unity funciona bem em subpasta porque usa caminhos relativos.

Se ao testar aparecer erro de carregamento de assets (ex.: caminhos como `Build/...` sem `./`), rode:
- `scripts/patch_webgl_index_subpath.py`

Ele ajusta `web-build/index.html` para subpasta de forma segura.

## 4) Upload no cPanel
1. Crie (ou use) a pasta:
   - `public_html/eventsappquest/`
2. Faça upload do conteúdo de `web-build/` para esta pasta.
3. Copie também o arquivo:
   - `web-build/.htaccess`  -->  `public_html/eventsappquest/.htaccess`

## 5) O que o `.htaccess` faz
Ele adiciona MIME types comuns para WebAssembly e assets Unity, além de suportar gzip/brotli quando a build estiver comprimida.

Se seu host não permitir `.htaccess` (regra do cPanel), você pode precisar configurar via painel (às vezes existe opção de “MIME types”/“WebGL”). Nesse caso, essa parte precisa ser ajustada.

## 6) Teste
Abra a URL final no navegador.

Checklist mínimo:
- `index.html` carrega a tela
- `Build/*.wasm` e `Build/*.data` retornam `200`
- sem mensagens de “404 asset missing”

## 7) Limitações conhecidas (desta versão do projeto)
- Sem backend real: dados do dashboard são mock.
- Qualquer dependência de runtime WebGL (browser/limitações de WebAssembly) é responsabilidade do host/cliente (ex.: CORS não entra aqui porque não há requisições externas).

## 8) O que está funcional nesta versão WEB (mock/local)
- Cena `WebInstall`: wizard de staging; se ainda não “instalado”, mostra passos e ao clicar “Concluir” grava configuração local e redireciona.
- Cena `HotelCRM`: monta o dashboard (Leads, Oportunidades, Propostas, Sessões Quest, Follow-ups) usando `MockWebDataService`.
- Persistência de staging: “instalação concluída” e seed demo são guardados via `PlayerPrefs` e JSON local em `Application.persistentDataPath`.
- Cena `Main` + `QuestPresentation`: a partir do `Main`, existe botão “Abrir apresentação Quest”; no navegador tende a ficar em modo runtime fallback (XR real não é esperado no WebGL).

## 9) Credenciais de teste
Não existe login/autenticação nesta camada Web para o fluxo de teste atual.
O campo “admin de teste” no wizard é apenas um identificador/nota opcional (não vira usuário/senha).

