# Benachrichtigungen

Meldungen der Organisation, Ungelesen-Zähler und Webhooks.

## Hinweise für KI-Agenten

- API-Basisadresse: `https://api.eventwerk.eu/api/v1`
- OpenAPI 3.1: `https://api.eventwerk.eu/openapi.json` und `/api/v1/openapi.json`. Daraus lassen sich Clients und Typprüfungen generieren.
- Anmeldung: `Authorization: Bearer ew_...`
- Schlüssel: Einstellungen unter `/dashboard/einstellungen`, nur mit Eventwerk Plus und nur für Eigentümer. Der volle Schlüssel wird nur einmal angezeigt. Name und Zeitpunkt der letzten Nutzung werden geführt und ausgegeben.
- Zeiten: Alle Zeitpunkte kommen in UTC mit Suffix `Z`. Die Zeitzone des Events steht getrennt in `timezone` als IANA-Name, Standard `Europe/Vienna`. Clients rechnen selbst um.
- Paginierung: Die Event- und Anmeldelisten liefern `{items, has_more, next_cursor}` mit `limit` (Standard 50, höchstens 200), `cursor` und `updated_since`.
- Grenzen: 200 Anfragen pro Minute je Schlüssel. Der Zähler liegt im Speicher je Instanz, ist hinter mehreren Instanzen ein Vielfaches und beginnt nach einem Deploy neu. Bei Überschreitung antwortet die API mit 429, `rate_limited` und `Retry-After`.
- Gastgrenzen: Anmelde-Link 20 je Stunde je IP-Adresse, Anmeldung 60 je Stunde je IP-Adresse und 3 je Stunde je E-Mail-Adresse und Event.
- Fehler: JSON mit `code` und `message`, optional mit `details`.

Benachrichtigungen gehören der Organisation, nicht einem einzelnen Mitglied. Alle Mitglieder sehen dieselben Meldungen. Die Glocke im Dashboard zeigt die Zahl der ungelesenen Einträge.

## Arten

| Art | Auslöser |
| --- | --- |
| registration_created | Eine neue öffentliche Anmeldung. |
| registration_cancelled | Eine Anmeldung wurde storniert. |
| registration_promoted | Eine Anmeldung ist von der Warteliste nachgerückt. |
| registration_checked_in | Eine Anmeldung wurde eingecheckt. |
| survey_response | Eine neue Antwort auf eine Umfrage. |
| message_sent | Eine Nachricht wurde versandt. |

## Lesen und als gelesen markieren

Die Benachrichtigungsseite lädt die neuesten Meldungen. Standard sind 20 Einträge, höchstens 100. Ein Filter `unread_only` zeigt nur ungelesene Meldungen.

- `GET /api/notifications?limit=20&unread_only=false` liefert Meldungen und die Zahl der ungelesenen Einträge.
- `POST /api/notifications/read` mit einer Liste von IDs markiert genau diese Meldungen.
- Ohne IDs markiert derselbe Aufruf alle ungelesenen Meldungen der Organisation.
- Die Antwort enthält die verbleibende Zahl der ungelesenen Meldungen.

> **Hinweis:** Diese Endpunkte brauchen ein Sitzungs-Token, keinen API-Schlüssel. Sie stehen nicht unter `/api/v1`.

## Webhooks

Jede neue Benachrichtigung kann zusätzlich an aktive Webhooks der Organisation gesendet werden. Webhooks gehören zu Eventwerk Plus. Die Zustellung läuft im Hintergrund und hat keine dauerhafte Warteschlange.

> **Warnung:** SMS, Push und WhatsApp sind als Benachrichtigungskanäle geplant, aber noch nicht gebaut. Die Benachrichtigungen sind derzeit nur in der Oberfläche und über die API abrufbar.
