# Employee Workflow - End-to-End Test

Diese Anleitung führt dich durch den vollständigen Mitarbeiter-Workflow, vom Anlegen bis zur Ticket-Zuweisung.

## Voraussetzungen

1. ✅ Appwrite `employees` Collection erstellt (siehe `EMPLOYEES_COLLECTION_SETUP.md`)
2. ✅ Appwrite `workorders` Collection hat `assignedTo` Attribut
3. ✅ Collection IDs in `.env` und `src/lib/appwrite.js` eingetragen
4. ✅ Du bist als Admin eingeloggt (User Label: `admin`)

## Schritt 1: Appwrite Setup abschließen

### 1.1 employees Collection ID eintragen

1. Öffne Appwrite: `https://appwrite.webklar.com`
2. Gehe zu **Databases** → **woms-database** → **employees**
3. Kopiere die Collection ID (z.B. `694bd1fb002b2e583d14`)
4. Öffne `src/lib/appwrite.js`
5. Ersetze `'employees'` mit der echten ID:

```javascript
EMPLOYEES: '694bd1fb002b2e583d14', // <- Deine Collection ID hier
```

### 1.2 assignedTo Attribut zu workorders hinzufügen

1. Gehe zu **workorders** Collection (ID: `6943bf7d001901baa60c`)
2. Klicke auf **Attributes** → **Create Attribute**
3. Erstelle:
   - Type: String
   - Key: `assignedTo`
   - Size: 255
   - Required: Nein

## Schritt 2: Anwendung starten

```bash
cd /Users/kensogrimm/Documents/GitHub/tickte-system
npm run dev
```

Öffne im Browser: `http://localhost:5173`

## Schritt 3: Mitarbeiter hinzufügen

### Option A: Dich selbst als Mitarbeiter hinzufügen

1. Gehe zu **Admin Panel** (Navigation → Admin)
2. Scrolle zur Sektion **Mitarbeiter**
3. Klicke auf **"Mich selbst hinzufügen"**
4. ✅ Du solltest jetzt in der Mitarbeiter-Liste erscheinen

### Option B: Manuell Mitarbeiter hinzufügen

1. Gehe zu Appwrite: `https://appwrite.webklar.com`
2. Öffne **Auth** → **Users**
3. Wähle einen Benutzer aus und kopiere die **User ID** (z.B. `6765fb5b00295d6c0a2c`)
4. Gehe zurück zum **Admin Panel** in deiner App
5. Scrolle zu **"Neuen Mitarbeiter hinzufügen"**
6. Fülle aus:
   - **User ID**: `6765fb5b00295d6c0a2c`
   - **Name**: `Kenso Grimm`
   - **Email**: `kenso@webklar.com`
   - **Kürzel**: `KNSO`
7. Klicke auf **"Mitarbeiter hinzufügen"**
8. ✅ Der Mitarbeiter erscheint in der Tabelle

## Schritt 4: Weitere Mitarbeiter hinzufügen

Wiederhole Schritt 3 für weitere Mitarbeiter:

| Name | Email | Kürzel | User ID (aus Appwrite) |
|------|-------|--------|------------------------|
| Christian Lehmann | christian.lehmann@example.com | CHLE | `[User ID aus Appwrite]` |
| Dietmar Bruckauf | dietmar.bruckauf@example.com | DIBR | `[User ID aus Appwrite]` |
| Dominik Armata | dominik.armata@example.com | DOAR | `[User ID aus Appwrite]` |
| Gregor Vowinkel | gregor.vowinkel@example.com | GRVO | `[User ID aus Appwrite]` |

## Schritt 5: Kürzel zuordnen/bearbeiten

1. In der **Mitarbeiter-Tabelle** klicke auf **Edit** (Stift-Icon)
2. Ändere das **Kürzel** (z.B. von leer zu `KNSO`)
3. Klicke auf **Speichern**
4. ✅ Das Kürzel wird in der Tabelle angezeigt

## Schritt 6: Ticket erstellen und Mitarbeiter zuweisen

1. Gehe zu **Tickets** (Navigation → Tickets)
2. Klicke auf **"CREATE TICKET"**
3. Fülle das Formular aus:
   - **Customer ID**: Wähle einen Kunden
   - **Work Order Type**: z.B. `Supportrequest`
   - **Affected System**: z.B. `Network`
   - **Priority**: z.B. `Medium`
   - **Assigned To**: Wähle einen Mitarbeiter (z.B. `Kenso Grimm (KNSO)`)
   - **Topic**: z.B. `WLAN Problem beheben`
   - **Requested by**: z.B. `Max Mustermann`
4. Klicke auf **"CREATE NOW"**

### ✅ Erwartetes Ergebnis:

- Das Ticket wird erstellt
- **Status** ist automatisch **"Assigned"** (nicht "Open"!)
- In der Ticket-Liste siehst du das neue Ticket mit Status "Assigned"

## Schritt 7: Status-Automatik testen

### Test 1: Ticket ohne Zuweisung

1. Erstelle ein neues Ticket
2. Lasse **Assigned To** auf **"Unassigned"**
3. Erstelle das Ticket

**✅ Erwartetes Ergebnis:**
- Status ist **"Open"**

### Test 2: Zuweisung nachträglich hinzufügen

1. Öffne ein Ticket mit Status "Open"
2. Weise einen Mitarbeiter zu (Edit-Funktion)
3. Speichere

**✅ Erwartetes Ergebnis:**
- Status wechselt automatisch zu **"Assigned"**

### Test 3: Zuweisung entfernen

1. Öffne ein Ticket mit Status "Assigned"
2. Entferne die Mitarbeiter-Zuweisung (setze auf "Unassigned")
3. Speichere

**✅ Erwartetes Ergebnis:**
- Status wechselt automatisch zurück zu **"Open"**

## Schritt 8: Mitarbeiter-Dropdown überprüfen

1. Öffne das **"CREATE TICKET"** Modal
2. Scrolle zum **"Assigned To"** Dropdown
3. Klicke darauf

**✅ Erwartetes Ergebnis:**
- Du siehst alle Mitarbeiter
- Format: `Name (Kürzel)` oder nur `Name` wenn kein Kürzel
- Beispiel: `Kenso Grimm (KNSO)`
- Erste Option ist `Unassigned`

## Schritt 9: Admin Panel überprüfen

1. Gehe zu **Admin Panel**
2. Scrolle zur **Mitarbeiter-Sektion**

**✅ Erwartetes Ergebnis:**
- Tabelle zeigt alle Mitarbeiter
- Spalten: Name, Email, Kürzel, User ID, Aktionen
- Kürzel ist farbig hervorgehoben (blau wenn gesetzt, grau wenn leer)
- Edit und Delete Buttons funktionieren

## Fehlerbehebung

### Fehler: "Collection not found"

**Lösung:**
- Überprüfe, ob die Collection ID in `src/lib/appwrite.js` korrekt ist
- Stelle sicher, dass die Collection in Appwrite existiert

### Fehler: "Unauthorized" beim Laden der Mitarbeiter

**Lösung:**
- Überprüfe die Permissions der `employees` Collection
- Read sollte mindestens "Users" sein

### Fehler: "User ID not found"

**Lösung:**
- Die User ID muss von einem existierenden Appwrite Auth User sein
- Überprüfe in Appwrite unter Auth → Users

### Fehler: "Duplicate userId"

**Lösung:**
- Ein Mitarbeiter mit dieser User ID existiert bereits
- Prüfe die Mitarbeiter-Liste im Admin Panel

### Mitarbeiter erscheinen nicht im Dropdown

**Lösung:**
1. Überprüfe, ob Mitarbeiter im Admin Panel angezeigt werden
2. Prüfe Browser Console auf Fehler
3. Stelle sicher, dass `employees` Collection die richtigen Permissions hat

## Erfolg! 🎉

Wenn alle Tests erfolgreich waren:
- ✅ Mitarbeiter können im Admin Panel verwaltet werden
- ✅ Kürzel können zugeordnet werden
- ✅ Tickets können Mitarbeitern zugewiesen werden
- ✅ Status wechselt automatisch zwischen "Open" und "Assigned"
- ✅ Mitarbeiter werden im Dropdown mit Kürzel angezeigt

## Nächste Schritte

1. **Weitere Mitarbeiter hinzufügen**: Füge alle Team-Mitglieder hinzu
2. **Kürzel-Konvention**: Lege ein einheitliches Format fest (z.B. erste 2 Buchstaben Vorname + 2 Buchstaben Nachname)
3. **Tickets zuweisen**: Weise bestehende Tickets Mitarbeitern zu
4. **Workflow testen**: Erstelle Test-Tickets und teste den vollständigen Workflow

## Support

Bei Problemen:
1. Überprüfe die Appwrite Console auf Fehler
2. Prüfe die Browser DevTools Console
3. Lies `EMPLOYEES_COLLECTION_SETUP.md` für Setup-Details
4. Überprüfe die Permissions in Appwrite

