# Gästeliste und Check-in

Anmeldungen filtern, exportieren, importieren und am Einlass einchecken.

## 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`.

Die Gästeliste zeigt alle Anmeldungen eines Events. Eigentümer, Verwaltung und die Rolle Einlass können sie lesen. Die Rolle Einlass kann Gäste lesen und einchecken, aber nicht verwalten.

## Gästeliste

- Filter nach Status: Wartet auf Freigabe, Bestätigt, Warteliste, Storniert oder Abgelehnt.
- Offene Anmeldungen lassen sich einzeln oder gesammelt annehmen und ablehnen.
- Suche nach Name oder E-Mail-Adresse, ohne Beachtung der Großschreibung.
- Anzeige von Ticketart, Preis, Anmeldezeitpunkt und Check-in-Zeitpunkt.
- Die Reihenfolge ist nach Anmeldezeitpunkt aufsteigend.

## Gastdetails

Die Detailseite zeigt E-Mail-Adresse, Ticketart, Preis, Promo-Code, Einwilligung und alle Antworten. Das Team kann die Anmeldung stornieren oder endgültig löschen. Das Löschen entfernt auch Antworten und Favoriten.

## CSV-Export

Der Export enthält alle Anmeldungen des Events. Die Datei ist UTF-8 mit Byte Order Mark, trennt Spalten mit Semikolon und verwendet Zeiten in der Zeitzone des Events.

- Spalten: name, email, status, ticket, preis_cent, waehrung, promo_code, angemeldet_am, eingecheckt_am, einwilligung_am, einwilligung_version.
- Danach folgt je Frage eine eigene Spalte mit der Bezeichnung der Frage.
- Feldinhalte mit Semikolon, Anführungszeichen oder Zeilenumbruch werden korrekt maskiert.

Der umgekehrte Weg über eine CSV-Datei steht unter Gäste-Import und Empfehlungen.

## Check-in

1. Öffnen Sie das Event und wählen Sie Einlass.
2. Scannen Sie den QR-Code oder geben Sie den Code ein.
3. Eventwerk antwortet mit `checked_in` oder `already_checked_in`.

- Einchecken ist für Anmeldungen mit Status pending oder confirmed möglich.
- Warteliste, Storniert und Abgelehnt können nicht eingecheckt werden.
- Der Check-in-Zeitpunkt wird nur einmal gesetzt. Ein zweiter Versuch meldet bereits eingecheckt.
- Unbekannte Codes ergeben `registration_not_found`.

> **Hinweis:** Der Einlass funktioniert auch auf dem Smartphone. Der QR-Code steckt im Ticket unter `/ticket/<token>` und ist für den Gast bestimmt.

## Berechtigungen

| Rolle | Gästeliste lesen | Check-in | Anmeldung löschen |
| --- | --- | --- | --- |
| Eigentümer | ja | ja | ja |
| Verwaltung | ja | ja | ja |
| Einlass | ja | ja | nein |
