# Instalar: SLA Personalizado por Cliente

## Ficheiros novos

```
database/migrations/2026_08_28_000003_add_sla_overrides_to_clients_table.php
```

## Ficheiros a substituir

```
app/Models/Client.php                                    (+ sla_overrides, helpers)
app/Services/SlaService.php                                 (aceita Client opcional)
app/Actions/MaintenanceRequests/CreateMaintenanceRequestAction.php   (usa o SLA do cliente)

app/Livewire/Admin/ClientShow.php                             (formulário de SLA)
resources/views/livewire/admin/client-show.blade.php
```

## Passos

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

## Como funciona

Ordem de prioridade ao calcular o prazo de um pedido:

```
1. SLA personalizado do CLIENTE (se definido para essa prioridade)
2. SLA global (Configurações → separador SLA)
3. Valores por omissão do sistema
```

Em `/admin/clients/{id}`, nova secção **"SLA Personalizado"** — uma
tabelinha com Resposta/Resolução (horas) por prioridade, **tudo
opcional**: deixa em branco qualquer campo para esse cliente usar o SLA
global nessa prioridade específica. Não é tudo-ou-nada — podes, por
exemplo, só personalizar a prioridade "Emergência" e deixar as outras no
padrão da empresa.

Quando um cliente tem pelo menos um valor personalizado, aparece um
selo **"SLA personalizado"** ao lado do estado, no topo da página —
fácil de ver de relance sem teres de abrir o formulário.

**Nota**: tal como o SLA global, isto só se aplica a pedidos **criados
depois** de guardares — nunca altera prazos de pedidos já em curso.

## Testar

1. `/admin/clients/{id}` de um cliente de teste → define "Emergência:
   Resposta = 1h, Resolução = 2h" → Guardar
2. Confirma que aparece o selo "SLA personalizado" no topo
3. Cria um novo pedido de Emergência para esse cliente → confirma no
   detalhe do pedido que o prazo reflete 2h (não as 4h do padrão global)
4. Cria um pedido de prioridade "Normal" para o mesmo cliente → confirma
   que usa o prazo **global** (porque não personalizaste essa prioridade)
