# Deploy e Rollback - v2.0

## Deploy

### Script deploy.sh

```bash
./deploy.sh
```

O script executa:
1. `git pull origin main` — atualiza código
2. Build do frontend Next.js (se `npm` disponível e pasta `frontend` existir)
3. Ajuste de permissões (`chown`)

### Pré-requisitos

- Node.js 18+ e npm para build do frontend
- PHP 8+ com extensões: pdo_mysql, json, mbstring, curl
- MySQL/MariaDB

### Variáveis de ambiente

- **Frontend:** `NEXT_PUBLIC_API_URL` — URL da API (ex: `https://www.lotericapremiada.com.br`)
- **API:** usa `config/Configuration.php` para banco

### Build manual

```bash
cd frontend
npm ci
npm run build
```

### Servidor

- Frontend: Next.js em modo estático (`npm run build` + `npm run start`) ou servido via Nginx/Apache
- API: PHP via Apache/Nginx (mod_php ou php-fpm)

---

## Rollback

### Procedimento rápido

1. Reverter commit:
   ```bash
   git revert HEAD --no-edit
   git push origin main
   ./deploy.sh
   ```

2. Ou voltar para commit específico:
   ```bash
   git checkout <commit-hash>
   ./deploy.sh
   git checkout main
   ```

### Manter v1.0 disponível

- A v1.0 (PHP legado) continua em produção. A v2.0 (Next.js + API) coexiste.
- Em caso de erro na v2.0, redirecionar usuários para o fluxo v1.0 via configuração de proxy/rewrite.

### Backup antes de deploy

```bash
# Backup do banco (exemplo)
mysqldump -u user -p database > backup_$(date +%Y%m%d).sql

# Backup do código
tar -czf deploy_backup_$(date +%Y%m%d).tar.gz .
```

---

## Staging

- Ambiente de homologação com banco anonimizado
- Integrações (PagSeguro, Gerencianet, etc.) em sandbox
- URL de staging: configurar em `NEXT_PUBLIC_API_URL` do frontend
