# Guia de Deploy

Guia pensado para hospedagem compartilhada com cPanel + Apache + SQL Server (mesmo cenário dos outros projetos), mas os passos valem para qualquer servidor Linux com PHP.

## 1. Banco de dados
1. Criar o banco no SQL Server (via painel de hospedagem ou SSMS)
2. Rodar `script_criacao_banco.sql` inteiro nele
3. Criar um usuário de banco dedicado (evite usar `sa` em produção) com permissão apenas neste banco

## 2. Arquivos
1. Enviar todo o conteúdo da pasta `ordem-servico/` para o servidor (via FTP/SFTP ou upload do zip pelo cPanel)
2. Se o domínio/subdomínio apontar direto para essa pasta, tudo funciona como está
3. Se preferir manter só uma pasta pública, mova `frontend/` para dentro de `public_html/` e ajuste os `fetch()` no HTML para o domínio da API (ou mantenha tudo junto, como está — mais simples)

## 3. Configuração
1. `config/database.php` → preencher `DB_HOST`, `DB_NAME`, `DB_USER`, `DB_PASS`
2. `includes/auth.php` → trocar `JWT_SECRET` por um valor aleatório longo (ex: `bin2hex(random_bytes(32))` gerado uma vez e colado ali)
3. Conferir que a extensão `sqlsrv`/`pdo_sqlsrv` está ativa no PHP do servidor (no cPanel: MultiPHP INI Editor ou pedir ao suporte da hospedagem)
4. Dar permissão de escrita para a pasta `uploads/os/` (geralmente `755` já basta; em alguns hosts pode ser necessário `775`)

## 4. Primeiro acesso
```
php criar_superadmin.php "Seu Nome" "voce@dominio.com" "uma-senha-forte"
```
Se o servidor não permitir rodar PHP via SSH, pode ser necessário pedir esse acesso ao suporte da hospedagem, ou rodar localmente apontando `config/database.php` temporariamente para o banco de produção.

## 5. E-mail
A função `mail()` usada em `NotificacaoService.php` depende do servidor de e-mail já configurado no host (comum em cPanel). Para maior confiabilidade (evitar cair em spam), recomenda-se trocar por SMTP autenticado via PHPMailer — mesmo padrão usado nos outros projetos.

## 6. SMS/WhatsApp
Pendente de decisão do provedor. Quando escolhido, implementar a classe do driver em `includes/NotificacaoService.php` (veja o comentário `SmsDriverTwilio` de exemplo no arquivo) e trocar a linha em `driverSms()`.

## 7. URLs amigáveis
O `.htaccess` na raiz já reescreve:
- `/acompanhar/TOKEN` → página pública do cliente
- `/painel` → painel da empresa
- `/superadmin` → painel do super admin

Exige `mod_rewrite` ativo (padrão na maioria dos hosts cPanel).

## 8. Checklist de segurança antes de ir ao ar
- [ ] `JWT_SECRET` trocado (não deixar o valor de exemplo)
- [ ] Senha do banco forte, usuário sem privilégio de `sa`
- [ ] HTTPS ativo no domínio (senão o link do cliente e o login trafegam sem criptografia)
- [ ] `.htaccess` de `config/`, `includes/` e `uploads/` presentes no servidor (confirmar que o host não ignora `.htaccess` — alguns exigem `AllowOverride All` no vhost)
- [ ] Testar upload de foto e confirmar que o arquivo salvo não pode ser executado como PHP
