# Admin-Panel Setup

Das Admin-Panel wurde erfolgreich erstellt! Hier ist die Anleitung zur Einrichtung.

## Was wurde erstellt:

1. **Admin-Panel Seite** (`/admin`) - Verwaltung der Dropdown-Optionen
2. **useAdminConfig Hook** - Lädt und speichert die Konfiguration
3. **Navigation erweitert** - Admin-Link erscheint für Admin-Benutzer
4. **CreateTicketModal angepasst** - Verwendet jetzt die konfigurierten Werte

## Schritt 1: Config Collection in Appwrite erstellen

1. Gehe zu `https://appwrite.webklar.com`
2. Öffne dein Projekt **woms**
3. Gehe zu **Databases** → **woms-database**
4. Klicke auf **Create Collection**
5. **Collection ID**: `config`
6. **Name**: `Admin Configuration`

### Attribute hinzufügen:

| Attribut Name | Typ | Größe | Required | Array |
|--------------|-----|-------|----------|-------|
| `ticketTypes` | string | - | - | ✓ |
| `systems` | string | - | - | ✓ |
| `responseLevels` | string | - | - | ✓ |
| `serviceTypes` | string | - | - | ✓ |
| `priorities` | string | - | - | ✓ |

**Wichtig:** Alle Attribute müssen als **Array** konfiguriert sein!

### Berechtigungen:

- **Read**: `Any` (damit alle Benutzer die Optionen sehen können)
- **Create**: `Users` (nur eingeloggte Benutzer können erstellen)
- **Update**: `Users` (nur eingeloggte Benutzer können aktualisieren)
- **Delete**: `Users` (optional)

## Schritt 2: Admin-Berechtigung konfigurieren

Aktuell wird ein Benutzer als Admin erkannt, wenn:
- Die Email `admin` enthält, ODER
- Die Email `kenso@webklar.com` ist, ODER
- Der Benutzer ein `admin` Label hat

### Option A: Email-basierte Erkennung (aktuell implementiert)

Die Admin-Erkennung erfolgt in:
- `src/pages/AdminPage.jsx` (Zeile ~10)
- `src/components/Navbar.jsx` (Zeile ~29)

Du kannst die Bedingung anpassen:

```javascript
const isAdmin = user?.email?.includes('admin') || 
                user?.email === 'deine@email.com' ||
                user?.labels?.includes('admin')
```

### Option B: Appwrite Labels verwenden

1. Gehe zu **Auth** → **Users** im Appwrite Dashboard
2. Wähle einen Benutzer aus
3. Füge ein **Label** hinzu: `admin`
4. Die Admin-Erkennung funktioniert dann automatisch

## Schritt 3: Admin-Panel verwenden

1. **Logge dich als Admin ein**
2. Gehe zu **Admin** in der Navigation (erscheint nur für Admins)
3. Bearbeite die Dropdown-Optionen:
   - **Work Order Types** - Ticket-Typen
   - **Affected Systems** - Betroffene Systeme
   - **Response Levels** - Response-Ebenen
   - **Service Types** - Service-Typen
   - **Priorities** - Prioritäten (mit Value und Label)
4. Klicke auf **Konfiguration speichern**

## Schritt 4: Testen

1. **Als Admin:**
   - Öffne das Admin-Panel
   - Ändere einige Optionen
   - Speichere die Konfiguration

2. **Als normaler Benutzer:**
   - Erstelle ein neues Ticket
   - Die geänderten Optionen sollten jetzt in den Dropdowns erscheinen

## Funktionsweise

- **Admin-Panel**: Lädt die Konfiguration aus Appwrite und erlaubt Bearbeitung
- **CreateTicketModal**: Lädt die Konfiguration automatisch und verwendet die Werte
- **Fallback**: Falls die Config nicht geladen werden kann, werden Standard-Werte verwendet

## Troubleshooting

### "Collection config not found"
- Stelle sicher, dass die Collection `config` erstellt wurde
- Überprüfe die Collection ID (muss genau `config` sein)

### "Zugriff verweigert"
- Überprüfe die Admin-Erkennung in `AdminPage.jsx`
- Stelle sicher, dass deine Email den Admin-Kriterien entspricht

### "Konfiguration wird nicht geladen"
- Überprüfe die Berechtigungen der `config` Collection
- Stelle sicher, dass **Read** auf `Any` oder `Users` gesetzt ist

### "Änderungen werden nicht übernommen"
- Überprüfe die **Update** Berechtigung der `config` Collection
- Stelle sicher, dass du als Admin eingeloggt bist

Viel Erfolg! 🚀

