# mivita Payment Dashboard – Laravel Modul

Aktivitäts- und Störungs-Dashboard für die Zahlungsanbieter (PAYONE, Stripe, PayPal, Mollie).

---

## Installation

### 1. Dateien kopieren

Kopiere die Ordner in dein bestehendes Laravel-Projekt:

```
database/migrations/  →  in dein database/migrations/
app/Models/           →  PaymentIncident.php + IncidentActivity.php nach app/Models/
app/Http/Controllers/ →  PaymentDashboardController.php nach app/Http/Controllers/
resources/views/      →  Ordner dashboard/ und layouts/dashboard.blade.php
routes/               →  payment-dashboard.php
```

### 2. Migration ausführen

```bash
php artisan migrate
```

Erstellt drei Tabellen:
- `payment_incidents` – Incidents / Störungen
- `incident_activities` – Kommunikationsverlauf pro Incident
- `provider_uptime_logs` – Uptime-Logs (für spätere Automatisierung)

### 3. Routes einbinden

In `routes/web.php` ergänzen:

```php
require base_path('routes/payment-dashboard.php');
```

### 4. Layout prüfen

Das Dashboard hat ein eigenes Layout (`layouts/dashboard.blade.php`).
Falls du ein bestehendes App-Layout verwenden willst, passe die
`@extends`-Direktive in den Views entsprechend an.

---

## URLs

| URL                              | Beschreibung                        |
|----------------------------------|-------------------------------------|
| `/payment-dashboard`             | Entwickler-Ansicht (Kevin)          |
| `/payment-dashboard/management`  | GF-Ansicht (Alois) – read-only      |
| `/payment-dashboard/{id}`        | Incident-Detail mit Timeline        |

---

## Features

### Entwickler-Ansicht
- Alle offenen Incidents mit Schnell-Status-Update
- Neuen Incident anlegen (Modal)
- Kommunikations-Timeline (E-Mails, Tickets, Calls, Notizen)
- Vollständige Incident-Tabelle mit Pagination
- Anbieter-Übersicht (PAYONE, Stripe, PayPal, Mollie)

### GF-Ansicht (Alois)
- Klare Ampel-Karten: Offene Störungen, betroffener Umsatz, PAYONE-Probleme
- Anbieter-Status auf einen Blick
- Aktive Störungen mit Schwere und Dauer
- Letzte Vorfälle als Tabelle

### Incident-Detail
- Vollständiger Kommunikationsverlauf als Timeline
- Aktivitäten hinzufügen (E-Mail, Telefonat, Ticket, Notiz, Anbieter-Antwort)
- Status direkt ändern (löst automatisch Aktivitätseintrag aus)

---

## Nächste Ausbaustufen (optional)

- **Automatischer Uptime-Check**: Artisan Command, der PAYONE/Stripe-Endpunkte
  periodisch prüft und bei Ausfall automatisch einen Incident anlegt:
  ```bash
  php artisan payment:check-uptime
  ```

- **E-Mail-Benachrichtigung**: Bei neuem Critical-Incident automatisch Mail
  an kevin@adametz-media.de

- **Rollen**: Middleware, die Alois nur auf `/management` weiterleitet

---

## Technik

- Laravel (Blade Templates, Eloquent, Form Requests)
- Kein zusätzliches JS-Framework – reines Blade + CSS
- Dark Mode Design, responsive
- Alle Labels auf Deutsch
