# Instalação das Interfaces (Livewire) — Passo a Passo

## 1. Instalar o Livewire

```bash
cd ~/public_html/app.amimak.co.mz
composer require livewire/livewire
```

## 2. Copiar os ficheiros deste pacote para o servidor

Via SFTP/Gestor de Ficheiros do cPanel (upload directo é mais seguro do que
colar heredocs enormes no SSH — já vimos que o terminal baralha às vezes):

- `app/Livewire/` → copiar para `app/Livewire/`
- `app/Http/Middleware/EnsureInternalUser.php` e `EnsurePortalUser.php` → `app/Http/Middleware/`
- `resources/views/` → copiar para `resources/views/`
- `routes/web.php` → **substitui** o `routes/web.php` que já lá está

## 3. Actualizar o `bootstrap/app.php`

Usa o conteúdo de `deploy/bootstrap-app.php.final` deste pacote — já tem os
3 middlewares (`ensure.mfa`, `internal`, `portal`) registados. Substitui o
`bootstrap/app.php` actual por este.

## 4. Limpar caches e testar

```bash
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan route:cache
```

## 5. Testar no browser

- `https://app.amimak.co.mz/login` → deve mostrar o formulário de login
- Entra com `admin@amimak.co.mz` / `password123` (o utilizador de teste que
  criámos via tinker) → deve ir para `/admin/dashboard`
- Entra com `joao@empresateste.co.mz` / `password123` → deve ir para
  `/portal/dashboard`

## 6. Storage de uploads

Para os uploads de fotos funcionarem (`FileStorageService`), confirma que
já correste:

```bash
php artisan storage:link
chmod -R 775 storage
```

## O que ainda falta (próximos incrementos)

- Ecrã de check-in/conclusão de Work Order para o técnico (mobile-first,
  secção 26/56 da spec original)
- Ecrã de Quotes/Invoices no painel interno
- Ecrã de gestão de Clients/Technicians (CRUD via interface, hoje só via API/tinker)
- Melhorar o design (isto está funcional mas minimalista — Tailwind via
  CDN é só para desenvolvimento rápido; para produção final considerar
  compilar Tailwind localmente via Vite, o que precisa de Node.js — pode
  não estar disponível neste cPanel, a confirmar)
- Formulário de "Esqueci-me da password"
- Ecrã de configuração de MFA (já existe a API, falta a interface)
