# Migração do chatbot para PHP 8.2 e Laravel 12

## Escopo

Este pacote atualiza somente o `chatbot-telegram`:

- PHP mínimo: 8.2.12
- Laravel: 12.x
- Sanctum: 4.x
- PHPUnit: 11.x (desenvolvimento)
- PostgreSQL: configuração `search_path=public`
- CORS: middleware nativo do Laravel

As aplicações `indicadores-equipamentos` e `painel-vendas` não fazem parte desta migração.

## Verificação obrigatória do PHP usado pelo Agendador

O Agendador de Tarefas usa um caminho explícito para o PHP. Antes da troca,
execute no servidor:

```bat
C:\xampp\php\php.exe -v
C:\xampp\php\php.exe -m | findstr /I "curl mbstring openssl pdo_pgsql fileinfo dom xml ctype tokenizer"
```

O primeiro comando deve mostrar PHP 8.2 ou superior. Todos os módulos listados
devem estar habilitados, especialmente `curl` e `pdo_pgsql`.

## Implantação segura

1. Desabilite temporariamente as tarefas `LZK Chatbot Telegram` e
   `LZK Chatbot Scheduler`.
2. Confirme que não existe processo `php.exe artisan telegram:poll` em execução.
3. Renomeie `C:\web\chatbot-telegram` para uma pasta de backup com data e hora.
4. Extraia este pacote como `C:\web\chatbot-telegram`.
5. Copie do backup para a nova pasta:
   - `.env`
   - `storage\app\telegram-update-offset.txt`
   - a pasta `scripts`, usada pelo Agendador de Tarefas
6. Garanta permissão de escrita em `storage` e `bootstrap\cache` para o usuário
   que executa as tarefas.
7. Execute:

```bat
cd /d C:\web\chatbot-telegram
C:\xampp\php\php.exe artisan optimize:clear
C:\xampp\php\php.exe artisan --version
C:\xampp\php\php.exe artisan migrate:status
C:\xampp\php\php.exe artisan schedule:list
C:\xampp\php\php.exe artisan telegram:check
C:\xampp\php\php.exe artisan chatbot:preview-work 14384
```

O comando de versão deve informar `Laravel Framework 12.x`.

8. Teste o bot em primeiro plano:

```bat
C:\xampp\php\php.exe artisan telegram:poll
```

Envie `/ajuda` no grupo e encerre o teste com `Ctrl+C`.

9. Reative primeiro `LZK Chatbot Telegram` e teste `/usina`.
10. Reative `LZK Chatbot Scheduler` e confirme que ambas as tarefas ficam com
    status pronto/em execução conforme esperado.

## Rollback

1. Desabilite as duas tarefas.
2. Renomeie a pasta nova.
3. Restaure o backup para `C:\web\chatbot-telegram`.
4. Reative as tarefas.

Esta migração não cria nem altera tabelas. As migrations do chatbot permanecem
as mesmas; o comando `migrate:status` serve apenas para conferir o estado.
