# Dokumentations-Regeln

## Automatische Dokumentations-Aktualisierung

**WICHTIG:** Bei JEDER Code-Änderung muss die entsprechende Dokumentation aktualisiert werden!

## Wann Dokumentation aktualisieren?

### API-Änderungen
Wenn du einen Endpoint änderst, hinzufügst oder entfernst:
- Aktualisiere `/docs/api/consent-service-api.md` (Go Endpoints)
- Aktualisiere `/docs/api/backend-api.md` (Python Endpoints)

### Neue Funktionen/Klassen
Wenn du neue Funktionen, Klassen oder Module erstellst:
- Aktualisiere `/docs/consent-service/README.md` (für Go)
- Aktualisiere `/docs/backend/README.md` (für Python)

### Architektur-Änderungen
Wenn du die Systemarchitektur änderst:
- Aktualisiere `/docs/architecture/system-architecture.md`
- Aktualisiere `/docs/architecture/data-model.md` (bei DB-Änderungen)

### Neue Konfigurationsoptionen
Wenn du neue Umgebungsvariablen oder Konfigurationen hinzufügst:
- Aktualisiere die entsprechende README
- Füge zur `guides/local-development.md` hinzu

## Dokumentations-Format

### API-Endpoints dokumentieren

```markdown
### METHOD /path/to/endpoint

Kurze Beschreibung.

**Request Body:**
\`\`\`json
{
  "field": "value"
}
\`\`\`

**Response (200):**
\`\`\`json
{
  "result": "value"
}
\`\`\`

**Errors:**
- `400`: Beschreibung
- `401`: Beschreibung
```

### Funktionen dokumentieren

```markdown
### FunctionName (file.go:123)

\`\`\`go
func FunctionName(param Type) ReturnType
\`\`\`

**Beschreibung:** Was macht die Funktion?

**Parameter:**
- `param`: Beschreibung

**Rückgabe:** Beschreibung
```

## Checkliste nach Code-Änderungen

Vor dem Abschluss einer Aufgabe prüfe:

- [ ] Wurden neue API-Endpoints hinzugefügt? → API-Docs aktualisieren
- [ ] Wurden Datenmodelle geändert? → data-model.md aktualisieren
- [ ] Wurden neue Konfigurationen hinzugefügt? → README aktualisieren
- [ ] Wurden neue Abhängigkeiten hinzugefügt? → requirements.txt/go.mod UND Docs
- [ ] Wurde die Architektur geändert? → architecture/ aktualisieren

## Beispiel: Vollständige Dokumentation einer neuen Funktion

Wenn du z.B. `GetUserStats()` im Go Service hinzufügst:

1. **Code schreiben** in `internal/services/stats_service.go`
2. **API-Doc aktualisieren** in `docs/api/consent-service-api.md`
3. **Service-Doc aktualisieren** in `docs/consent-service/README.md`
4. **Test schreiben** (siehe testing.md)
