<!-- BEGIN CHANGE: docs cleanup inactivity (Server Info + e-mail) -->

# Cleanup de inatividade (portal + OT)

## O que faz

1. **Server Info** lista chars/houses em risco nas proximas 48h (SQL ao vivo, mesmas regras do `dbcleaner` / `house_clean`).
2. **Historico do dia** vem de `z_cleanup_log` (gravado pelo Lua no startup).
3. **E-mail** (`cleanup-notify.php`) avisa contas com e-mail valido, 1x por conta+dia de prazo (`z_cleanup_mail`).

## Tabelas

Aplicar: `portal/sql/z_cleanup.sql` (ou a API cria com `CREATE TABLE IF NOT EXISTS`).

## Cron (diario)

```bash
# Exemplo 10:00 America/Sao_Paulo
0 10 * * * php /home/ubuntu/dev-portal/api/cleanup-notify.php >> /home/ubuntu/dev-portal/logs/cleanup-notify.log 2>&1
```

Alternativa HTTP (mesmo segredo de `secret.key`):

```bash
curl -s "https://dev.whiteantidote.com/api/cleanup-notify.php?key=$(cat /home/ubuntu/dev-portal/secret.key)"
```

## Deploy OT

Apos atualizar `dbcleaner.lua` e `house_clean.lua` no servidor, **reiniciar o OT** (scripts rodam no startup). Sem restart, o historico do dia fica vazio ate o proximo boot.

<!-- END CHANGE -->
