# Instalar: Fechar Work Order + Fechar Pedido

## Ficheiros a substituir

```
app/Actions/WorkOrders/CheckInWorkOrderAction.php     (propaga IN_PROGRESS ao pedido)
app/Actions/WorkOrders/CompleteWorkOrderAction.php     (propaga COMPLETED ao pedido)

app/Livewire/Admin/WorkOrderShow.php                    (novo método closeWorkOrder)
app/Livewire/Admin/MaintenanceRequestShow.php             (novo método closeRequest)

resources/views/livewire/admin/work-order-show.blade.php
resources/views/livewire/admin/maintenance-request-show.blade.php
```

Sem migrations, sem rotas novas.

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

## O que mudou

**Fluxo completo agora:**

```
Pedido NEW
  → Aprovar → APPROVED
  → Criar Work Order → SCHEDULED (pedido segue a WO automaticamente)
  → Técnico faz Check-in → WO IN_PROGRESS → pedido também IN_PROGRESS (novo)
  → Técnico conclui e assina → WO COMPLETED → pedido também COMPLETED (novo)
  → Alguém com permissão de aprovação fecha a WO → WO CLOSED (novo botão)
  → Alguém com permissão de aprovação fecha o Pedido → CLOSED (novo botão)
  → Cliente pode agora deixar feedback (⭐) no portal
```

- **"Fechar Work Order"** aparece em `/admin/work-orders/{id}` quando o
  estado é `COMPLETED`, só para quem tem a permissão `work_orders.close`
  (Maintenance Manager, Admin).
- **"Fechar Pedido"** aparece em `/admin/maintenance-requests/{id}` quando
  o estado é `COMPLETED`, com um aviso se ainda houver Work Orders
  associadas por fechar (não bloqueia, só avisa).

## Testar

1. Pega num pedido `SCHEDULED` com WO atribuída
2. Faz check-in como o técnico (ou o Admin, se `technician_id` for o
   utilizador de teste) → confirma que o **pedido** também passou a
   `IN_PROGRESS` (não só a WO)
3. Conclui a WO → confirma que o **pedido** passou a `COMPLETED`
4. Vai à WO → "Fechar Work Order"
5. Vai ao pedido → "Fechar Pedido"
6. Entra como cliente no portal → deve aparecer o formulário de avaliação
