# Instalar: Corrigir Kanban (impedir saltar o fluxo guiado)

## Ficheiros a substituir

```
app/Livewire/Admin/MaintenanceRequestKanban.php
resources/views/livewire/admin/maintenance-request-kanban.blade.php
```

Sem migrations.

```bash
cd ~/public_html/app.amimak.co.mz
php artisan config:clear
php artisan view:clear
```

## O problema que corrigi

O Kanban deixava arrastar um pedido directamente para "Agendado", "Em
Execução" ou "Concluído" — sem passar pela criação da Work Order, sem
técnico atribuído, sem check-in, sem assinatura. Isso permitia criar
pedidos "Concluídos" sem nenhum trabalho de campo real registado —
inconsistência grave de dados.

## A correção

- **Só se pode arrastar** entre `Novo`, `Em Revisão`, `Aprovado` (as
  colunas com um 🔒 ao lado do nome ficam bloqueadas para drop)
- Tentar largar um cartão numa coluna bloqueada faz o cartão **voltar ao
  sítio** automaticamente, sem chamar o servidor
- Mesmo que alguém contorne o JavaScript (ex: via consola do browser), o
  **servidor também rejeita** — a validação real está em `moveTo()`, o
  JavaScript é só para a experiência ficar clara
- Mover para "Aprovado" via drag agora usa a mesma permissão
  (`maintenance_requests.approve`) que o botão "Aprovar" no detalhe —
  antes usava uma permissão diferente e mais permissiva

## Testar

1. `/admin/maintenance-requests/kanban` → arrasta um cartão de "Novo"
   para "Aprovado" → deve funcionar normalmente
2. Tenta arrastar um cartão de "Aprovado" para "Concluído" → deve voltar
   ao sítio, sem gravar nada
3. Confirma que só quem tem permissão de aprovar consegue mover para
   "Aprovado" (testa com um role sem essa permissão)
