# 🚀 Deployment-Checkliste - Outlook Integration

## 📋 Dateien die auf den Webserver müssen:

### 🆕 NEUE DATEIEN (erstellen):

#### Event Listener:
- `src/EventListener/CourseChangeListener.php`

#### Neue Entities:
- `src/Entity/SynchronizedEvent.php`
- `src/Repository/SynchronizedEventRepository.php`

#### Command:
- `src/Command/SyncAllCoursesCommand.php`

### 📝 GEÄNDERTE DATEIEN (aktualisieren):

#### Controller:
- `src/Controller/Admin/OutlookController.php`

#### Service:
- `src/Service/OutlookCalendarService.php`

#### Templates:
- `templates/admin/outlook/index.html.twig`
- `templates/admin_base.html.twig`
- `templates/container/show.html.twig`

#### Konfiguration:
- `config/services.yaml`

## 🔧 Deployment-Schritte:

### Schritt 1: Neue Dateien hochladen
```bash
# Erstelle diese Dateien auf dem Webserver:
src/EventListener/CourseChangeListener.php
src/Entity/SynchronizedEvent.php
src/Repository/SynchronizedEventRepository.php
src/Command/SyncAllCoursesCommand.php
```

### Schritt 2: Geänderte Dateien aktualisieren
```bash
# Überschreibe diese Dateien:
src/Controller/Admin/OutlookController.php
src/Service/OutlookCalendarService.php
templates/admin/outlook/index.html.twig
templates/admin_base.html.twig
templates/container/show.html.twig
config/services.yaml
```

### Schritt 3: Datenbank-Migration
```bash
# Auf dem Webserver ausführen:
php bin/console doctrine:migrations:migrate --env=prod
```

### Schritt 4: Cache leeren
```bash
# Auf dem Webserver ausführen:
php bin/console cache:clear --env=prod
```

### Schritt 5: Testen
- Outlook-Integration aufrufen: `/admin/outlook/`
- Container-Template testen: `/container/1`
- Event Listener testen (Kurs ändern)

## ⚠️ Wichtige Hinweise:

1. **Backup vorher erstellen!**
2. **Schritt für Schritt** deployen
3. **Bei Fehlern sofort stoppen**
4. **Cache nach jeder Änderung leeren**

## 🎯 Reihenfolge:

1. ✅ Neue Dateien erstellen
2. ✅ Geänderte Dateien aktualisieren  
3. ✅ Migration ausführen
4. ✅ Cache leeren
5. ✅ Testen
